diff options
Diffstat (limited to 'src/com/trilead/ssh2/transport/ClientServerHello.java')
-rw-r--r-- | src/com/trilead/ssh2/transport/ClientServerHello.java | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/src/com/trilead/ssh2/transport/ClientServerHello.java b/src/com/trilead/ssh2/transport/ClientServerHello.java deleted file mode 100644 index d7a5ee5..0000000 --- a/src/com/trilead/ssh2/transport/ClientServerHello.java +++ /dev/null @@ -1,125 +0,0 @@ - -package com.trilead.ssh2.transport; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; - -import com.trilead.ssh2.Connection; - -/** - * ClientServerHello. - * - * @author Christian Plattner, plattner@trilead.com - * @version $Id: ClientServerHello.java,v 1.2 2008/04/01 12:38:09 cplattne Exp $ - */ -public class ClientServerHello -{ - String server_line; - String client_line; - - String server_versioncomment; - - public final static int readLineRN(InputStream is, byte[] buffer) throws IOException - { - int pos = 0; - boolean need10 = false; - int len = 0; - while (true) - { - int c = is.read(); - if (c == -1) - throw new IOException("Premature connection close"); - - buffer[pos++] = (byte) c; - - if (c == 13) - { - need10 = true; - continue; - } - - if (c == 10) - break; - - if (need10 == true) - throw new IOException("Malformed line sent by the server, the line does not end correctly."); - - len++; - if (pos >= buffer.length) - throw new IOException("The server sent a too long line."); - } - - return len; - } - - public ClientServerHello(InputStream bi, OutputStream bo) throws IOException - { - client_line = "SSH-2.0-" + Connection.identification; - - bo.write((client_line + "\r\n").getBytes("ISO-8859-1")); - bo.flush(); - - byte[] serverVersion = new byte[512]; - - for (int i = 0; i < 50; i++) - { - int len = readLineRN(bi, serverVersion); - - server_line = new String(serverVersion, 0, len, "ISO-8859-1"); - - if (server_line.startsWith("SSH-")) - break; - } - - if (server_line.startsWith("SSH-") == false) - throw new IOException( - "Malformed server identification string. There was no line starting with 'SSH-' amongst the first 50 lines."); - - if (server_line.startsWith("SSH-1.99-")) - server_versioncomment = server_line.substring(9); - else if (server_line.startsWith("SSH-2.0-")) - server_versioncomment = server_line.substring(8); - else - throw new IOException("Server uses incompatible protocol, it is not SSH-2 compatible."); - } - - /** - * @return Returns the client_versioncomment. - */ - public byte[] getClientString() - { - byte[] result; - - try - { - result = client_line.getBytes("ISO-8859-1"); - } - catch (UnsupportedEncodingException ign) - { - result = client_line.getBytes(); - } - - return result; - } - - /** - * @return Returns the server_versioncomment. - */ - public byte[] getServerString() - { - byte[] result; - - try - { - result = server_line.getBytes("ISO-8859-1"); - } - catch (UnsupportedEncodingException ign) - { - result = server_line.getBytes(); - } - - return result; - } -} |