commit - c8492f0988cfa5eb4ce354d99b96327c588af797
commit + 5fa51edfa54283895bee8b8817896c2901a3b62c
blob - 5a3110afca4bd86b8c739cce71174901cd39adf1
blob + 656cbbb1aad9a4a0f877eaad55687381b6955821
--- de/mud/telnet/TelnetProtocolHandler.java
+++ de/mud/telnet/TelnetProtocolHandler.java
if(debug > 1)
System.err.println("TelnetIO.handle_sb("+type+")");
switch (type) {
- case TELOPT_TTYPE:
+ case TELOPT_TTYPE: {
if (sbdata.length>0 && sbdata[0]==TELQUAL_SEND) {
- write(IACSB);write(TELOPT_TTYPE);write(TELQUAL_IS);
/* FIXME: need more logic here if we use
* more than one terminal type
*/
String ttype = getTerminalType();
if(ttype == null) ttype = "dumb";
- write(ttype.getBytes());
- write(IACSE);
+ byte[] b = new byte[2+1+1+ttype.getBytes().length+2];
+ b[0] = IAC;
+ b[1] = SB;
+ b[2] = TELOPT_TTYPE;
+ b[3] = TELQUAL_IS;
+ System.arraycopy(ttype.getBytes(),0,b,4,ttype.getBytes().length);
+ b[4+ttype.getBytes().length] = IAC;
+ b[5+ttype.getBytes().length] = SE;
+ write(b);
}
-
}
+ break;
+ default:
+ System.err.println("Unexpected SB " + type);
+ break;
+ }
}
/**