From e7d811798291b3b9158a6c8046e6b6fced8879cf Mon Sep 17 00:00:00 2001 From: stubbfel Date: Sat, 13 Jan 2018 22:45:42 +0100 Subject: [PATCH] fix base types of protofield from base.hex to base.none, because otherwise it will cause an exception (sicne version 2.4) --- src/b2ws-plugin/b2ws_snippet.lua | 4 +++- tests/src/test_b2ws_snippet.lua | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/b2ws-plugin/b2ws_snippet.lua b/src/b2ws-plugin/b2ws_snippet.lua index b18ec39..f9790e4 100644 --- a/src/b2ws-plugin/b2ws_snippet.lua +++ b/src/b2ws-plugin/b2ws_snippet.lua @@ -164,7 +164,9 @@ function b2ws_create_dissector_fields_declaration_snippet(struct_object, field_o result_template = result_template:gsub("{field_type}", "bytes") end - if b2ws_string_starts(field_type, "u") or field_object.array_number ~= nil then + if field_object.array_number ~= nil then + result_template = result_template:gsub("{base_type}", "base.NONE") + elseif b2ws_string_starts(field_type, "u") then result_template = result_template:gsub("{base_type}", "base.HEX") else result_template = result_template:gsub("{base_type}", "base.DEC") diff --git a/tests/src/test_b2ws_snippet.lua b/tests/src/test_b2ws_snippet.lua index a46f7c5..3e0c79a 100644 --- a/tests/src/test_b2ws_snippet.lua +++ b/tests/src/test_b2ws_snippet.lua @@ -121,10 +121,10 @@ foo_layer = Proto("foo_layer", "foo layer") local foo_layer_fields = foo_layer.fields foo_layer_fields.bla_count = ProtoField.uint8("foo_layer_fields.bla_count", "bla_count", base.HEX, nil--[[valuestring]], nil, "bla_count description") -foo_layer_fields.bla = ProtoField.bytes("foo_layer_fields.bla", "bla", base.HEX, nil--[[valuestring]], nil, "bla description") +foo_layer_fields.bla = ProtoField.bytes("foo_layer_fields.bla", "bla", base.NONE, nil--[[valuestring]], nil, "bla description") foo_layer_fields.foo = ProtoField.uint32("foo_layer_fields.foo", "foo", base.HEX, nil--[[valuestring]], 0x0000ffff, "foo description") -foo_layer_fields.bar = ProtoField.bytes("foo_layer_fields.bar", "bar", base.HEX, nil--[[valuestring]], nil, "bar description") -foo_layer_fields.bla = ProtoField.bytes("foo_layer_fields.bla", "bla", base.HEX, nil--[[valuestring]], nil, "bla description") +foo_layer_fields.bar = ProtoField.bytes("foo_layer_fields.bar", "bar", base.NONE, nil--[[valuestring]], nil, "bar description") +foo_layer_fields.bla = ProtoField.bytes("foo_layer_fields.bla", "bla", base.NONE, nil--[[valuestring]], nil, "bla description") foo_layer_fields.bla = ProtoField.int16("foo_layer_fields.bla", "bla", base.DEC, nil--[[valuestring]], nil, "bla description") foo_layer_fields.bla = ProtoField.int32("foo_layer_fields.bla", "bla", base.DEC, nil--[[valuestring]], nil, "bla description") @@ -187,12 +187,12 @@ end fieldObject = b2ws_create_field_object("foo3", "uint16", "[ ]") result_string = b2ws_create_dissector_fields_declaration_snippet(structObject, fieldObject, test_field_declaration_template) lu.assertEquals(result_string, - "bla_layer_fields.foo3 = ProtoField.bytes(\"bla_layer_fields.foo3\", \"foo3\", base.HEX, nil--[[valuestring]], nil, foo3 description})") + "bla_layer_fields.foo3 = ProtoField.bytes(\"bla_layer_fields.foo3\", \"foo3\", base.NONE, nil--[[valuestring]], nil, foo3 description})") fieldObject = b2ws_create_field_object("foo3-1", "uint16", "[]") result_string = b2ws_create_dissector_fields_declaration_snippet(structObject, fieldObject, test_field_declaration_template) lu.assertEquals(result_string, - "bla_layer_fields.foo3-1 = ProtoField.bytes(\"bla_layer_fields.foo3-1\", \"foo3-1\", base.HEX, nil--[[valuestring]], nil, foo3-1 description})") + "bla_layer_fields.foo3-1 = ProtoField.bytes(\"bla_layer_fields.foo3-1\", \"foo3-1\", base.NONE, nil--[[valuestring]], nil, foo3-1 description})") fieldObject = b2ws_create_field_object("foo4", "int16", "") result_string = b2ws_create_dissector_fields_declaration_snippet(structObject, fieldObject, test_field_declaration_template) @@ -202,7 +202,7 @@ end fieldObject = b2ws_create_field_object("foo5", "int16", "[foo]") result_string = b2ws_create_dissector_fields_declaration_snippet(structObject, fieldObject, test_field_declaration_template) lu.assertEquals(result_string, - "bla_layer_fields.foo5 = ProtoField.bytes(\"bla_layer_fields.foo5\", \"foo5\", base.HEX, nil--[[valuestring]], nil, foo5 description})") + "bla_layer_fields.foo5 = ProtoField.bytes(\"bla_layer_fields.foo5\", \"foo5\", base.NONE, nil--[[valuestring]], nil, foo5 description})") fieldObject = b2ws_create_field_object("foo6", "uint32", ":0-15") result_string = b2ws_create_dissector_fields_declaration_snippet(structObject, fieldObject, test_field_declaration_template)