Fix bug in dynamic terminal size query

This commit is contained in:
Matthew R. Wilson committed 2025-11-10 20:41:22 -08:00
1 parent 1eee614349
commit c0ad185cd7
1 file changed
+4 -8
+4 -8
View File
@@ -320,18 +320,14 @@ func makeDeviceInfo(conn net.Conn, termtype string) (DevInfo, error) {
// Now we need to send the Write Structured Field command (0xf3) with the
// "Read Partition - Query" structured field. Note that we're
// telnet-escaping the 0xff in the data, but the subfield length is the
// *unescaped* length (7).
if _, err := conn.Write([]byte{0xf3, 0, 7, 0x01, 0xff, 0xff, 0x02,
// *unescaped* length (5).
if _, err := conn.Write([]byte{0xf3, 0, 5, 0x01, 0xff, 0xff, 0x02,
0xff, 0xef}); err != nil {
return nil, err
}
// Now... the problem here is that the command we used, Read Partition -
// Query, may only work on tn3270e connections. We didn't negotiate
// tn3270e, we're just using "classic" tn3270. If the client doesn't do
// anything with the command we sent ([cx]3270, PCOMM don't respond; Vista
// TN3270 does), we'll allow for a timeout on this read or else we'll
// block forever here.
// We'll use a timeout in case the client doesn't support/reply to our
// structured field query.
var aid [1]byte
conn.SetReadDeadline(time.Now().Add(3 * time.Second))
n, err := conn.Read(aid[:])