package sun.net.www.protocol.ssh;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.UnknownHostException;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
public class URLConnection extends java.net.URLConnection {
private Session session;
protected URLConnection(URL url$) throws UnknownHostException, IOException {
super(url$);
String userInfo = url$.getUserInfo();
if (userInfo == null)
userInfo = ":";
if (userInfo.length() == 0)
userInfo = ":";
String[] userPass = url$.getUserInfo().split("\\:");
try {
Connection connection = new Connection(url$.getHost(), url$
.getPort(), userPass[0], userPass[1]);
session = connection.openSession();
} catch (Throwable t) {
throw new IOException("Failed to connect to ssh://" + userPass[0]
+ "@" + url$.getHost() + ":" + url$.getPort());
}
}
@Override
public void connect() {
try {
session.execCommand(getURL().getQuery());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public InputStream getInputStream() {
return session.getStdout();
}
@Override
public OutputStream getOutputStream() {
return session.getStdin();
}
public InputStream getErrorStream() {
return session.getStderr();
}
}