Ethereal-users: [Ethereal-users] Problem with val_to_str
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Chua Wee Leng" <chuawl.SES@xxxxxxxxxxxxx>
Date: Wed, 2 Jul 2003 17:47:08 +0800
I encounter a proble with val_to_str function while doing my plugin. I'm surrently using ethereal-0.9.11 on RedHat Linux 7.3. The following is part of my code of protocol dis in packet-dis.c #define ENTITY_STATE_PDU 1 #define FIRE_PDU 2 #define DETONATION_PDU 3 #define START_RESUME_PDU 13 #define STOP_FREEZE_PDU 14 #define ACKNOWLEDGE_PDU 15 #define SET_DATA_PDU 19 #define DATA_PDU 20 const value_string pdu[] = { {ENTITY_STATE_PDU, "ENTITY_STATE_PDU"}, {FIRE_PDU, "FIRE_PDU"}, {DETONATION_PDU, "DETONATION_PDU"}, {START_RESUME_PDU, "START_RESUME_PDU"}, {STOP_FREEZE_PDU, "STOP_FREEZE_PDU"}, {ACKNOWLEDGE_PDU, "ACKNOWLEDGE_PDU"}, }; static const value_string vs_Entity_Kind[] = { {1, "Platform"}, {2, "Munition"}, {4, "Environment"}, {9, "Sensor/Emitter"}, }; . . . . . if (tree) { /* Adding DIS item and subtree */ dis_ti = proto_tree_add_item(tree, proto_dis, tvb, 0, tvb_length(tvb), FALSE); dis_tree = proto_item_add_subtree(dis_ti, ett_dis); proto_tree_add_uint_format (dis_tree, hf_pdu_type, tvb, offset, 1 , pdu_type, "PDU TYPE : %s", val_to_str (pdu_type, pdu, "Unknown (%u)")); //here I try to get string value of pdu_type from value_string pdu . . . . . void proto_register_dis(void) { static hf_register_info hf[] = { { &hf_protocol_version, { "Protocol Version", "dis.protocol_version", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}}, { &hf_exercise_id, { "Exercise ID", "dis.exercise_id", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}}, { &hf_pdu_type, { "PDU Type", "dis.pdu_type", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}}, // Here it define hf_pdu_type { &hf_protocol_family, { "Protocol Family", "dis.protocol_family", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}}, . What had happen is when there is a unknown pdy_type value, I will take a value 9 as an example. Looking at the valid value under string_value pdu, 9 is not inside the array of pdu, logically the decode value should be "Unknown (%u)". From what I understand val_to_str (pdu_type, pdu, "Unknown (%u)")), if pdu_type value is not found under pdu array, the third argument of val_to_str will be displayed. But for my case here is show "Sensor/Emitter" from the value_string array of vs_Entity_Kind[], as it is the the next set of value_string array where value 9 can be found. In this case, my plugin is not decode the right value for my application which it leads to incorrect info to be display. I would like to know that is this an common error in val_to_str package. Is there any solution to counter this problem. Thanks _______________________________________________________________ Reduce the paperwork in your company with JustLogin's office collaborative applications at http://www.justlogin.com
- Follow-Ups:
- Re: [Ethereal-users] Problem with val_to_str
- From: Guy Harris
- Re: [Ethereal-users] Problem with val_to_str
- Prev by Date: [Ethereal-users] Filters question
- Next by Date: [Ethereal-users] Ethereal and L2TP decoding
- Previous by thread: Re: [Ethereal-users] Filters question
- Next by thread: Re: [Ethereal-users] Problem with val_to_str
- Index(es):