From 9e62becd1e75ccb78e8f5124ebafb3d6f01534f0 Mon Sep 17 00:00:00 2001 From: Martin Oberhuber Date: Wed, 17 Jan 2007 18:51:18 +0000 Subject: [PATCH] [170814] avoid excessive sending of resize packets --- org.eclipse.tm.terminal-feature/feature.xml | 2 +- org.eclipse.tm.terminal.ssh-feature/feature.xml | 2 +- org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF | 2 +- .../org/eclipse/tm/terminal/ssh/SshConnector.java | 13 ++++++++++--- org.eclipse.tm.terminal/META-INF/MANIFEST.MF | 2 +- .../terminal/internal/telnet/TelnetConnector.java | 12 ++++++++++-- 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/org.eclipse.tm.terminal-feature/feature.xml b/org.eclipse.tm.terminal-feature/feature.xml index 18482d13fd2..0cf7e94ceca 100644 --- a/org.eclipse.tm.terminal-feature/feature.xml +++ b/org.eclipse.tm.terminal-feature/feature.xml @@ -3,7 +3,7 @@ id="org.eclipse.tm.terminal" label="%featureName" provider-name="%providerName" - version="0.9.1.qualifier"> + version="0.9.2.qualifier"> %description diff --git a/org.eclipse.tm.terminal.ssh-feature/feature.xml b/org.eclipse.tm.terminal.ssh-feature/feature.xml index 15a0150cf70..4f1a8c2ecc9 100644 --- a/org.eclipse.tm.terminal.ssh-feature/feature.xml +++ b/org.eclipse.tm.terminal.ssh-feature/feature.xml @@ -3,7 +3,7 @@ id="org.eclipse.tm.terminal.ssh" label="%featureName" provider-name="%providerName" - version="0.9.0.qualifier"> + version="0.9.1.qualifier"> %description diff --git a/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF b/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF index 1acb1cc4d25..1819a66b6f3 100644 --- a/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF +++ b/org.eclipse.tm.terminal.ssh/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal.ssh;singleton:=true -Bundle-Version: 0.9.0.qualifier +Bundle-Version: 0.9.1.qualifier Bundle-Vendor: %providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, diff --git a/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/terminal/ssh/SshConnector.java b/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/terminal/ssh/SshConnector.java index fc09688a4a7..282e74fa374 100644 --- a/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/terminal/ssh/SshConnector.java +++ b/org.eclipse.tm.terminal.ssh/src/org/eclipse/tm/terminal/ssh/SshConnector.java @@ -32,6 +32,8 @@ public class SshConnector implements ITerminalConnector { private ChannelShell fChannel; private SshConnection fConnection; private final SshSettings fSettings; + private int fWidth; + private int fHeight; public SshConnector() { this(new SshSettings()); try { @@ -80,9 +82,12 @@ public class SshConnector implements ITerminalConnector { return false; } public void setTerminalSize(int newWidth, int newHeight) { - if(fChannel!=null) - fChannel.setPtySize(newWidth, newHeight, 8, 8); - + if(fChannel!=null && (newWidth!=fWidth || newHeight!=fHeight)) { + //avoid excessive communications due to change size requests by caching previous size + fChannel.setPtySize(newWidth, newHeight, 8*newWidth, 8*newHeight); + fWidth=newWidth; + fHeight=newHeight; + } } public InputStream getInputStream() { return fInputStream; @@ -128,5 +133,7 @@ public class SshConnector implements ITerminalConnector { } void setChannel(ChannelShell channel) { fChannel = channel; + fWidth=-1; + fHeight=-1; } } \ No newline at end of file diff --git a/org.eclipse.tm.terminal/META-INF/MANIFEST.MF b/org.eclipse.tm.terminal/META-INF/MANIFEST.MF index dbde0d0dd61..a0e0b790c80 100644 --- a/org.eclipse.tm.terminal/META-INF/MANIFEST.MF +++ b/org.eclipse.tm.terminal/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.tm.terminal; singleton:=true -Bundle-Version: 0.9.1.qualifier +Bundle-Version: 0.9.2.qualifier Bundle-Activator: org.eclipse.tm.terminal.internal.control.TerminalPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnector.java b/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnector.java index f55afcd19d1..da3f4e08da0 100644 --- a/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnector.java +++ b/org.eclipse.tm.terminal/src/org/eclipse/tm/terminal/internal/telnet/TelnetConnector.java @@ -35,6 +35,9 @@ public class TelnetConnector implements ITerminalConnector { private ITerminalControl fControl; private TelnetConnection fTelnetConnection; private final TelnetSettings fSettings; + private int fWidth = -1; + private int fHeight = -1; + public TelnetConnector() { this(new TelnetSettings()); } @@ -47,6 +50,8 @@ public class TelnetConnector implements ITerminalConnector { public void connect(ITerminalControl control) { Logger.log("entered."); //$NON-NLS-1$ fControl=control; + fWidth=-1; + fHeight=-1; TelnetConnectWorker worker = new TelnetConnectWorker(this,control); worker.start(); } @@ -85,9 +90,12 @@ public class TelnetConnector implements ITerminalConnector { return fTelnetConnection.localEcho(); } public void setTerminalSize(int newWidth, int newHeight) { - if(fTelnetConnection!=null) + if(fTelnetConnection!=null && (newWidth!=fWidth || newHeight!=fHeight)) { + //avoid excessive communications due to change size requests by caching previous size fTelnetConnection.setTerminalSize(newWidth, newHeight); - + fWidth=newWidth; + fHeight=newHeight; + } } public InputStream getInputStream() { return fInputStream;