telnet: fixed size negotiation order

上级 c4490717
...@@ -170,7 +170,7 @@ export class TelnetSession extends BaseSession { ...@@ -170,7 +170,7 @@ export class TelnetSession extends BaseSession {
} }
if (command === TelnetCommands.DO) { if (command === TelnetCommands.DO) {
if (option === TelnetOptions.NEGO_WINDOW_SIZE) { if (option === TelnetOptions.NEGO_WINDOW_SIZE) {
this.resize(0, 0) this.emitSize()
} else if (option === TelnetOptions.ECHO) { } else if (option === TelnetOptions.ECHO) {
this.echoEnabled = true this.echoEnabled = true
this.emitTelnet(TelnetCommands.WILL, option) this.emitTelnet(TelnetCommands.WILL, option)
...@@ -210,10 +210,18 @@ export class TelnetSession extends BaseSession { ...@@ -210,10 +210,18 @@ export class TelnetSession extends BaseSession {
this.lastHeight = h this.lastHeight = h
} }
if (this.lastWidth && this.lastHeight && this.telnetProtocol) { if (this.lastWidth && this.lastHeight && this.telnetProtocol) {
this.emitSize()
}
}
private emitSize () {
if (this.lastWidth && this.lastHeight) {
this.emitTelnetSuboption(TelnetOptions.NEGO_WINDOW_SIZE, Buffer.from([ this.emitTelnetSuboption(TelnetOptions.NEGO_WINDOW_SIZE, Buffer.from([
this.lastWidth >> 8, this.lastWidth & 0xff, this.lastWidth >> 8, this.lastWidth & 0xff,
this.lastHeight >> 8, this.lastHeight & 0xff, this.lastHeight >> 8, this.lastHeight & 0xff,
])) ]))
} else {
this.emitTelnet(TelnetCommands.WONT, TelnetOptions.NEGO_WINDOW_SIZE)
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册