Add an unlimited string length for server chat packet

This commit is contained in:
roblabla 2013-08-05 13:14:12 +02:00 committed by Xabier de Zuazo
parent 5c8f29bdff
commit 6a530522a6

View File

@ -2,6 +2,7 @@ var assert = require('assert');
var util = require('util');
var STRING_MAX_LENGTH = 240;
var SRV_STRING_MAX_LENGTH = 32767;
var packets = {
0x00: [
@ -22,9 +23,14 @@ var packets = {
{ name: "serverHost", type: "string" },
{ name: "serverPort", type: "int" }
],
0x03: [
0x03: {
toServer: [
{ name: "message", type: "string" }
],
toClient: [
{ name: "message", type: "ustring" }
]
},
0x04: [
{ name: "age", type: "long" },
{ name: "time", type: "long" }
@ -517,6 +523,7 @@ var types = {
'byte': [readByte, writeByte, 1],
'ubyte': [readUByte, writeUByte, 1],
'string': [readString, writeString, sizeOfString],
'ustring': [readString, writeString, sizeOfUString],
'byteArray16': [readByteArray16, writeByteArray16, sizeOfByteArray16],
'bool': [readBool, writeBool, 1],
'double': [readDouble, writeDouble, 8],
@ -1270,6 +1277,11 @@ function sizeOfString(value) {
return 2 + 2 * value.length;
}
function sizeOfUString(value) {
assert.ok(value.length < SRV_STRING_MAX_LENGTH, "string greater than max length");
return 2 + 2 * value.length;
}
function writeString(value, buffer, offset) {
buffer.writeInt16BE(value.length, offset);
offset += 2;