Hi,
Is the sizeofroutername in the protocol a 8 bit value or 16 bit value?
You read a 8 bit value:
> sizeofroutername = tvb_get_guint8(tvb, offset);
, but present a 16 bit value:
> proto_tree_add_item(helen_sub_tree,
> hf_helen_sizeofRouterName, tvb, offset, 2, FALSE);
> offset += 2;
Thanks,
Jaap
Brian Oleksa wrote:
> Hello All
>
> What I am really looking to do is the following:
>
> proto_tree_add_item(helen_sub_tree, hf_helen_routername, tvb, offset,
> *sizeofroutername*, FALSE);
>
> But putting in the "sizeofroutername" does not seem to work and does
> indeed through off the rest of the packet.
>
> When I "hardcode" the value (which in this case it is 2... as I can see
> it in the hex dump window).. it appears to work ok....but I know that I
> cannot hard code that value.
> proto_tree_add_item(helen_sub_tree, hf_helen_routername, tvb, offset, 2,
> FALSE);
>
> Any thoughts..??
>
> Code snippet is below
>
> Thanks,
> Brian
>
>
>
>
>
> //Router Ext:
> if (code == 1001) {
> guint8 routercount;
> guint8 interfacecount;
> guint8 sizeofinterfacename;
> guint8 sizeofroutername;
> guint i;
> guint k;
>
> //router count
> routercount = tvb_get_guint8(tvb, offset);
> proto_tree_add_item(helen_sub_tree,
> hf_helen_routerCount, tvb, offset, 1, FALSE);
> offset += 1;
>
>
> //Router Data
> for (i = 0; i < routercount; i++) {
> nstime_t t;
> guint64 msecs_since_the_epoch;
> struct tm *tmp;
>
> //Size of router name
> sizeofroutername = tvb_get_guint8(tvb, offset);
> proto_tree_add_item(helen_sub_tree,
> hf_helen_sizeofRouterName, tvb, offset, 2, FALSE);
> offset += 2;
>
> *Here is where the problem starts:*
>
> //Router Name
> //proto_tree_add_item(helen_sub_tree,
> hf_helen_routername, tvb, offset, sizeofroutername, FALSE);
> proto_tree_add_item(helen_sub_tree,
> hf_helen_routername, tvb, offset, 2, FALSE);
> offset += 2;
> //offset += sizeofroutername;
>
> //status
> proto_tree_add_uint(helen_sub_tree,
> hf_helen_routerstatus, tvb, offset, 1, FALSE);
> offset += 1;
>
> //update time
> msecs_since_the_epoch = tvb_get_ntoh64(tvb, offset);
> t.secs = msecs_since_the_epoch / 1000;
> t.nsecs = (msecs_since_the_epoch %
> 1000)*1000000; /* milliseconds to nanoseconds */
> tmp = gmtime(&t.secs);
> proto_tree_add_time(helen_sub_tree,
> hf_helen_time, tvb, offset, 8, &t);
> offset += 8;
>
> //cpu % used
> proto_tree_add_uint(helen_sub_tree,
> hf_helen_cpuusage, tvb, offset, 1, FALSE);
> offset += 1;
>
> //interface count
> interfacecount = tvb_get_guint8(tvb, offset);
> proto_tree_add_uint(helen_sub_tree,
> hf_helen_interface_count, tvb, offset, 1, FALSE);
> offset += 1;
>
> //Interface Data
> for (k = 0; k < interfacecount; k++) {
> proto_tree_add_item(helen_sub_tree,
> hf_helen_sizeofInterfaceName, tvb, offset, 2, FALSE);
> offset += 2;
>
> //Interface Name
> sizeofinterfacename = tvb_get_guint8(tvb,
> offset);
> proto_tree_add_item(helen_sub_tree,
> hf_helen_interfacename, tvb, offset, 8, FALSE);
> offset += sizeofinterfacename;
>
> //incoming bytes
> proto_tree_add_item(helen_sub_tree,
> hf_helen_incomingBytes, tvb, offset, 4, FALSE);
> offset += 4;
>
> //outgoing bytes
> proto_tree_add_item(helen_sub_tree,
> hf_helen_outgoingBytes, tvb, offset, 4, FALSE);
> offset += 4;
>
> //interface active?
> proto_tree_add_uint(helen_sub_tree,
> hf_helen_interfaceActivity, tvb, offset, 1, FALSE);
> offset += 1;
>
> }
>
> }
>
> }
>
>
> { &hf_helen_routername,
> { "Router Name", "helen.routername", FT_STRING, BASE_NONE,
> NULL, 0x0,
> NULL, HFILL}},
> ___________________________________________________________________________
> Sent via: Wireshark-dev mailing list <[email protected]>
> Archives: http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
> mailto:[email protected]?subject=unsubscribe
___________________________________________________________________________
Sent via: Wireshark-dev mailing list <[email protected]>
Archives: http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
mailto:[email protected]?subject=unsubscribe