1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-14 20:45:22 +02:00

[225792][api][breaking] Rename SshConnector.getTelnetSettings() to getSshSettings()

This commit is contained in:
Martin Oberhuber 2008-04-04 17:38:42 +00:00
parent 5b0837cf7f
commit 4fd8ea2b77
3 changed files with 61 additions and 49 deletions

View file

@ -11,7 +11,7 @@
* Helmut Haigermoser and Ted Williams.
*
* Contributors:
* Michael Scharf (Wind River) - extracted from TerminalControl
* Michael Scharf (Wind River) - extracted from TerminalControl
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
* Martin Oberhuber (Wind River) - [206892] Don't connect if already connecting
* Martin Oberhuber (Wind River) - [208029] COM port not released after quick disconnect/reconnect
@ -45,7 +45,7 @@ public class SerialConnector extends TerminalConnectorImpl {
private SerialSettings fSettings;
private SerialConnectWorker fConnectWorker = null;
private volatile boolean fDisconnectGoingOn = false;
public SerialConnector() {
}
public SerialConnector(SerialSettings settings) {
@ -53,7 +53,7 @@ public class SerialConnector extends TerminalConnectorImpl {
}
public void initialize() throws Exception {
try {
fSettings=new SerialSettings();
fSettings=new SerialSettings();
} catch (NoClassDefFoundError e) {
// tell the user how to install the library
throw new CoreException(new Status(IStatus.WARNING,Activator.PLUGIN_ID,0, SerialMessages.ERROR_LIBRARY_NOT_INSTALLED,e));
@ -63,7 +63,7 @@ public class SerialConnector extends TerminalConnectorImpl {
Logger.log("entered."); //$NON-NLS-1$
synchronized(this) {
if (fConnectWorker!=null || fDisconnectGoingOn) {
//avoid multiple background connect/disconnect threads at the same time
//avoid multiple background connect/disconnect threads at the same time
return;
}
fConnectWorker = new SerialConnectWorker(this, control);
@ -73,7 +73,7 @@ public class SerialConnector extends TerminalConnectorImpl {
fConnectWorker.start();
}
/**
* Indicate that the connectWorker is finished.
* Indicate that the connectWorker is finished.
*/
void doneConnect() {
synchronized(this) {
@ -83,7 +83,7 @@ public class SerialConnector extends TerminalConnectorImpl {
public void disconnect() {
Logger.log("entered."); //$NON-NLS-1$
synchronized(this) {
//avoid multiple background connect/disconnect threads at the same time
//avoid multiple background connect/disconnect threads at the same time
if (fConnectWorker!=null) {
fConnectWorker.interrupt();
return;
@ -92,7 +92,7 @@ public class SerialConnector extends TerminalConnectorImpl {
}
fDisconnectGoingOn = true;
}
// Fix for SPR 112422. When output is being received from the serial port, the
// below call to removePortOwnershipListener() attempts to lock the serial port
// object, but that object is already locked by another Terminal view thread
@ -105,7 +105,7 @@ public class SerialConnector extends TerminalConnectorImpl {
// The solution is to spawn a short-lived worker thread that calls
// removePortOwnershipListener(), thus preventing the display thread from
// deadlocking with the other Terminal view thread.
new Thread("Terminal View Serial Port Disconnect Worker") //$NON-NLS-1$
{
public void run() {
@ -118,9 +118,9 @@ public class SerialConnector extends TerminalConnectorImpl {
Logger.logException(e);
}
}
if (getSerialPort() != null) {
//Event listener is removed as part of close(),
//Event listener is removed as part of close(),
//but exceptions need to be caught to ensure that close() really succeeds
try {
getSerialPort().removeEventListener();
@ -131,7 +131,7 @@ public class SerialConnector extends TerminalConnectorImpl {
Logger.log("Calling close() on serial port ..."); //$NON-NLS-1$
getSerialPort().close();
}
if (getInputStream() != null) {
try {
getInputStream().close();
@ -139,7 +139,7 @@ public class SerialConnector extends TerminalConnectorImpl {
Logger.logException(exception);
}
}
if (getOutputStream() != null) {
try {
getOutputStream().close();
@ -147,7 +147,7 @@ public class SerialConnector extends TerminalConnectorImpl {
Logger.logException(exception);
}
}
setSerialPortIdentifier(null);
cleanSerialPort();
setSerialPortHandler(null);
@ -179,11 +179,11 @@ public class SerialConnector extends TerminalConnectorImpl {
public void setTerminalSize(int newWidth, int newHeight) {
// TODO
}
protected SerialPort getSerialPort() {
return fSerialPort;
}
/**
* sets the socket to null
*/
@ -192,9 +192,9 @@ public class SerialConnector extends TerminalConnectorImpl {
setInputStream(null);
setOutputStream(null);
}
protected void setSerialPort(SerialPort serialPort) throws IOException {
cleanSerialPort();
cleanSerialPort();
if(serialPort!=null) {
fSerialPort = serialPort;
setOutputStream(serialPort.getOutputStream());
@ -214,9 +214,13 @@ public class SerialConnector extends TerminalConnectorImpl {
SerialPortHandler getSerialPortHandler() {
return fTerminalSerialPortHandler;
}
/**
* Return the Serial Settings.
*
* @return the settings for a concrete connection.
*/
public ISerialSettings getSerialSettings() {
return fSettings;
}
public ISettingsPage makeSettingsPage() {
return new SerialSettingsPage(fSettings);

View file

@ -1,19 +1,20 @@
/*******************************************************************************
* Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
* Martin Oberhuber (Wind River) - [175686] Adapted to new IJSchService API
* Martin Oberhuber (Wind River) - [175686] Adapted to new IJSchService API
* - copied code from org.eclipse.team.cvs.ssh2/JSchSession (Copyright IBM)
* Martin Oberhuber (Wind River) - [198790] make SSH createSession() protected
* Mikhail Kalugin <fourdman@xored.com> - [201864] Fix Terminal SSH keyboard interactive authentication
* Martin Oberhuber (Wind River) - [155026] Add keepalives for SSH connection
* Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
* Martin Oberhuber (Wind River) - [225792] Rename SshConnector.getTelnetSettings() to getSshSettings()
*******************************************************************************/
package org.eclipse.tm.internal.terminal.ssh;
@ -86,12 +87,12 @@ class SshConnection extends Thread {
public void run() {
try {
int nTimeout = fConn.getTelnetSettings().getTimeout() * 1000;
int nKeepalive = fConn.getTelnetSettings().getKeepalive() * 1000;
String host = fConn.getTelnetSettings().getHost();
String user = fConn.getTelnetSettings().getUser();
String password = fConn.getTelnetSettings().getPassword();
int port=fConn.getTelnetSettings().getPort();
int nTimeout = fConn.getSshSettings().getTimeout() * 1000;
int nKeepalive = fConn.getSshSettings().getKeepalive() * 1000;
String host = fConn.getSshSettings().getHost();
String user = fConn.getSshSettings().getUser();
String password = fConn.getSshSettings().getPassword();
int port = fConn.getSshSettings().getPort();
////Giving a connectionId could be the index into a local
////Store where passwords are stored
@ -102,7 +103,7 @@ class SshConnection extends Thread {
//UserInfo ui=new MyUserInfo(connectionId, user, password);
UserInfo ui=new MyUserInfo(null, user, password);
Session session = createSession(user, password, host, port,
Session session = createSession(user, password, host, port,
ui, new NullProgressMonitor());
//java.util.Hashtable config=new java.util.Hashtable();
@ -137,7 +138,7 @@ class SshConnection extends Thread {
} catch (IOException e) {
connectFailed(e.getMessage(),e.getMessage());
} finally {
}
}
synchronized void setChannel(Channel channel) {
@ -177,7 +178,7 @@ class SshConnection extends Thread {
}
return display;
}
private static class MyUserInfo implements UserInfo, UIKeyboardInteractive {
private final String fConnectionId;
private final String fUser;
@ -198,10 +199,10 @@ class SshConnection extends Thread {
final boolean[] retval = new boolean[1];
Display.getDefault().syncExec(new Runnable() {
public void run() {
retval[0] = MessageDialog.openQuestion(null, SshMessages.WARNING, str);
retval[0] = MessageDialog.openQuestion(null, SshMessages.WARNING, str);
}
});
return retval[0];
return retval[0];
}
private String promptSecret(final String message) {
final String[] retval = new String[1];
@ -240,7 +241,7 @@ class SshConnection extends Thread {
}
});
}
public String[] promptKeyboardInteractive(final String destination,
public String[] promptKeyboardInteractive(final String destination,
final String name, final String instruction,
final String[] prompt, final boolean[] echo)
{
@ -257,14 +258,14 @@ class SshConnection extends Thread {
final String[][] finResult = new String[1][];
getStandardDisplay().syncExec(new Runnable() {
public void run() {
KeyboardInteractiveDialog dialog = new KeyboardInteractiveDialog(null,
KeyboardInteractiveDialog dialog = new KeyboardInteractiveDialog(null,
fConnectionId, destination, name, instruction, prompt, echo);
dialog.open();
finResult[0]=dialog.getResult();
}
});
String[] result=finResult[0];
if (result == null)
if (result == null)
return null; // canceled
if (result.length == 1 && prompt.length == 1 && prompt[0].trim().equalsIgnoreCase("password:")) { //$NON-NLS-1$
fPassword = result[0];

View file

@ -1,13 +1,14 @@
/*******************************************************************************
* Copyright (c) 2006, 2008 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Michael Scharf (Wind River) - initial API and implementation
* Martin Oberhuber (Wind River) - fixed copyright headers and beautified
* Martin Oberhuber (Wind River) - [225792] Rename SshConnector.getTelnetSettings() to getSshSettings()
*******************************************************************************/
package org.eclipse.tm.internal.terminal.ssh;
@ -59,7 +60,7 @@ public class SshConnector extends TerminalConnectorImpl {
Logger.logException(exception);
}
}
if (getOutputStream() != null) {
try {
getOutputStream().close();
@ -94,9 +95,15 @@ public class SshConnector extends TerminalConnectorImpl {
}
public void setState(TerminalState state) {
fControl.setState(state);
}
public ISshSettings getTelnetSettings() {
/**
* Return the SSH Settings.
*
* @return the settings for a concrete connection.
* @since org.eclipse.tm.terminal.ssh 2.0 renamed from getTelnetSettings()
*/
public ISshSettings getSshSettings() {
return fSettings;
}
public ISettingsPage makeSettingsPage() {
@ -107,7 +114,7 @@ public class SshConnector extends TerminalConnectorImpl {
}
public void load(ISettingsStore store) {
fSettings.load(store);
}
public void save(ISettingsStore store) {
fSettings.save(store);