commit - e31860f264d1dd3b9d2c27d8c39bc04bb4c97ed9
commit + f6e87749a8eb25874eab6800f8b6008c6031cf67
blob - fd30ca34ad6ea26f26486163973f06448fc0023d
blob + 192936f35de51b007e89e7060d4e6467ed5bf95a
--- de/mud/jta/plugin/SSH.java
+++ de/mud/jta/plugin/SSH.java
import de.mud.jta.VisualPlugin;
import de.mud.jta.event.ConfigurationListener;
+import de.mud.jta.event.SetWindowSizeListener;
import de.mud.jta.event.OnlineStatusListener;
import de.mud.jta.event.TerminalTypeRequest;
import de.mud.jta.event.WindowSizeRequest;
}
});
+ bus.registerPluginListener(new SetWindowSizeListener() {
+ public void setWindowSize(int columns, int rows) {
+ try {
+ handler.setWindowSize(columns,rows);
+ } catch (java.io.IOException e) {
+ System.err.println("IO Exception in set window size");
+ }
+ }
+ });
+
+
// reset the protocol handler just in case :-)
bus.registerPluginListener(new OnlineStatusListener() {
public void online() {
blob - 61ac10e088543674bc87f70224b6dccfdd8d0b7f
blob + d6cf7af013104bbf00bae5f326958e7765eedfb4
--- de/mud/ssh/SshIO.java
+++ de/mud/ssh/SshIO.java
private final byte SSH_CMSG_USER = 4;
private final byte SSH_CMSG_AUTH_PASSWORD = 9;
private final byte SSH_CMSG_REQUEST_PTY = 10;
+ private final byte SSH_CMSG_WINDOW_SIZE = 11;
private final byte SSH_CMSG_EXEC_SHELL = 12;
private final byte SSH_SMSG_SUCCESS = 14;
private final byte SSH_SMSG_FAILURE = 15;
crypto = null;
}
+ public void setWindowSize(int columns,int rows)
+ throws IOException {
+ if (phase == PHASE_INIT) {
+ System.err.println("sshio:setWindowSize(), sizing in init phase not supported.\n");
+ }
+ System.err.println("SSHIO:setWindowSize("+columns+","+rows+")");
+ Send_SSH_CMSG_WINDOW_SIZE(columns,rows);
+ }
synchronized public void sendData(String str) throws IOException {
if (debug > 1) System.out.println("SshIO.send(" + str + ")");
break;
case SSH_SMSG_FAILURE:
+ if (debug > 1) System.err.println("SSH_SMSG_FAILURE");
if (lastPacketSentType == SSH_CMSG_AUTH_PASSWORD) {// password incorrect ???
System.out.println("failed to log in");
Send_SSH_MSG_DISCONNECT("Failed to log in.");
}
/**
+ * Send_SSH_CMSG_WINDOW_SIZE
+ * string TERM environment variable value (e.g. vt100)
+ * 32-bit int terminal height, rows (e.g., 24)
+ * 32-bit int terminal width, columns (e.g., 80)
+ * 32-bit int terminal width, pixels (0 if no graphics) (e.g., 480)
+ */
+ private String Send_SSH_CMSG_WINDOW_SIZE(int c, int r) throws IOException {
+ SshPacket1 p = new SshPacket1(SSH_CMSG_WINDOW_SIZE);
+
+ p.putInt32(r); // Int32 rows
+ p.putInt32(c); // Int32 columns
+ p.putInt32(0); // Int32 x pixels
+ p.putInt32(0); // Int32 y pixels
+ sendPacket1(p);
+ return "";
+ }
+
+ /**
* Send_SSH_CMSG_REQUEST_PTY
* string TERM environment variable value (e.g. vt100)
* 32-bit int terminal height, rows (e.g., 24)