ProtoDef-io / node-protodef

Describe your protocol, and read it with ease.
MIT License
31 stars 18 forks source link

20 is not in the mappings value #105

Closed ROCHatty closed 4 years ago

ROCHatty commented 4 years ago

Hi,

I'm using the following repository: https://github.com/mhsjlw/node-raknet which uses Protodef. I've got the following error:

Error: Deserialization error for  : Read error for name : 20 is not in the mappings value
    at ProtoDef.readMapper (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\datatypes\utils.js:30:34)
    at ProtoDef.read (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\protodef.js:110:29)
    at C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\datatypes\structures.js:45:32
    at tryCatch (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\utils.js:50:16)
    at tryDoc (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\utils.js:54:10)
    at C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\datatypes\structures.js:44:5
    at Array.forEach (<anonymous>)
    at ProtoDef.readContainer (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\datatypes\structures.js:43:12)
    at ProtoDef.read (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\protodef.js:36:25)
    at ProtoDef.read (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\protodef.js:110:29)
    at e.message (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\protodef.js:149:49)
    at tryCatch (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\utils.js:50:16)
    at ProtoDef.parsePacketBuffer (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\protodef.js:149:29)
    at Parser.parsePacketBuffer (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\serializer.js:36:23)
    at Parser._transform (C:\Users\AaronJ\Documents\Raknet.js\node_modules\protodef\src\serializer.js:44:23)
    at Parser.Transform._read (C:\Users\AaronJ\Documents\Raknet.js\node_modules\readable-stream\lib\_stream_transform.js:177:10)
    at Parser.Transform._write (C:\Users\AaronJ\Documents\Raknet.js\node_modules\readable-stream\lib\_stream_transform.js:164:83)
    at doWrite (C:\Users\AaronJ\Documents\Raknet.js\node_modules\readable-stream\lib\_stream_writable.js:409:139)
    at writeOrBuffer (C:\Users\AaronJ\Documents\Raknet.js\node_modules\readable-stream\lib\_stream_writable.js:398:5)
    at Parser.Writable.write (C:\Users\AaronJ\Documents\Raknet.js\node_modules\readable-stream\lib\_stream_writable.js:307:11)
    at Client.handleMessage (C:\Users\AaronJ\Documents\Raknet.js\node_modules\node-raknet\src\client.js:190:17)
    at Socket.<anonymous> (C:\Users\AaronJ\Documents\Raknet.js\node_modules\node-raknet\src\createClient.js:25:12)
    at Socket.emit (events.js:215:7)
    at UDP.onMessage [as onmessage] (dgram.js:861:8) {
  field: '',
  buffer: <Buffer 14>
}

Where when I go to line 30 of node_modules\protodef\src\datatypes\utils.js, I see the following code:

if (mappedValue == null) throw new Error(value + ' is not in the mappings value')

Any fix for not finding 20?

ROCHatty commented 4 years ago

I got the same error with the number 24

rom1504 commented 4 years ago

not an issue with protodef, but for sure yes there are issues with node-raknet in this case it means the server/client is sending packets with values not defined in the mapper

can you open an issue in node raknet ?