Changes in B.A.T.M.A.N. dissector:

- Fixed last element in value_string arrays
- Fixed a possible bug in a loop making a currently unused string
- Changed preferences prefix to "batman"
- Added udp port preference in batman to be uniform
- Fixed some indents
- Added break in some switches
- Make it compile on win32

svn path=/trunk/; revision=25522
This commit is contained in:
Stig Bjørlykke 2008-06-22 10:59:08 +00:00
parent b17d12b64d
commit 50e372dd66
5 changed files with 43 additions and 32 deletions

View File

@ -54,6 +54,9 @@ static const gchar *fstr[] = {NULL, NULL, NULL, NULL, NULL, NULL, "DIRECTLINK",
/* gwflags */
/* unknown */
static guint global_bat_batman_udp_port = BAT_BATMAN_PORT;
static guint udp_port = 0;
static void dissect_bat_batman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
static void dissect_bat_hna(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
@ -64,9 +67,9 @@ void register_bat_batman(void)
{
static hf_register_info hf[] = {
{ &hf_bat_batman_version,
{ "Version", "bat.batman.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"", HFILL }
{ "Version", "bat.batman.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"", HFILL }
},
{ &hf_bat_batman_flags,
{ "Flags", "bat.batman.flags",
@ -145,19 +148,27 @@ void register_bat_batman(void)
proto_register_field_array(proto_bat_plugin, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
prefs_register_uint_preference(bat_module, "batman.bat.port", "BAT UDP Port",
"Set the port for B.A.T.M.A.N. BAT "
"messages (if other than the default of 4305)",
10, &global_bat_batman_udp_port);
}
void reg_handoff_bat_batman(void)
{
static gboolean inited = FALSE;
static dissector_handle_t batman_handle;
if (!inited) {
static dissector_handle_t batman_handle;
batman_handle = create_dissector_handle(dissect_bat_batman, proto_bat_plugin);
dissector_add("udp.port", BAT_BATMAN_PORT, batman_handle);
data_handle = find_dissector("data");
} else {
dissector_delete("udp.port", udp_port, batman_handle);
}
udp_port = global_bat_batman_udp_port;
dissector_add("udp.port", udp_port, batman_handle);
}
static void dissect_bat_batman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@ -180,6 +191,7 @@ static void dissect_bat_batman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
col_append_fstr(pinfo->cinfo, COL_INFO, "Unsupported Version %d", version);
}
call_dissector(data_handle, tvb, pinfo, tree);
break;
}
}
@ -296,7 +308,7 @@ static void dissect_bat_batman_v5(tvbuff_t *tvb, packet_info *pinfo, proto_tree
flags[0] = 0;
for (i = 0; i < 8; i++) {
bpos = 1 << i;
if ((batman_packeth->flags & bpos) && (fstr[bpos] != NULL)) {
if ((batman_packeth->flags & bpos) && (fstr[i] != NULL)) {
returned_length = g_snprintf(&flags[fpos], MAX_FLAGS_LEN - fpos, "%s%s",
fpos ? ", " : "",
fstr[i]);

View File

@ -45,16 +45,16 @@ static const value_string packettypenames[] = {
{ TUNNEL_IP_INVALID, "IP_INVALID" },
{ TUNNEL_KEEPALIVE_REQUEST, "KEEPALIVE_REQUEST" },
{ TUNNEL_KEEPALIVE_REPLY, "KEEPALIVE_REPLY" },
{ 6, NULL }
{ 0, NULL }
};
void register_bat_gw()
{
static hf_register_info hf[] = {
{ &hf_bat_gw_type,
{ "Type", "bat.gw.type",
FT_UINT8, BASE_DEC, VALS(packettypenames), 0x0,
"", HFILL }
{ "Type", "bat.gw.type",
FT_UINT8, BASE_DEC, VALS(packettypenames), 0x0,
"", HFILL }
},
{ &hf_bat_gw_ip,
{ "IP", "bat.gw.ip",
@ -71,7 +71,7 @@ void register_bat_gw()
proto_register_subtree_array(ett, array_length(ett));
proto_register_field_array(proto_bat_plugin, hf, array_length(hf));
prefs_register_uint_preference(bat_module, "udp.gw.port", "GW UDP Port",
prefs_register_uint_preference(bat_module, "batman.gw.port", "GW UDP Port",
"Set the port for B.A.T.M.A.N. Gateway "
"messages (if other than the default of 4306)",
10, &global_bat_gw_udp_port);

View File

@ -42,12 +42,12 @@ struct batman_packet_v5 {
address old_orig;
guint8 tq;
guint8 hna_len;
} __attribute__((packed));
};
#define BATMAN_PACKET_V5_SIZE 18
struct gw_packet {
guint8 type;
} __attribute__((packed));
};
#define GW_PACKET_SIZE 1
#define TUNNEL_DATA 0x01
@ -67,14 +67,14 @@ struct vis_packet_v22 {
guint8 version;
guint8 gw_class;
guint16 tq_max;
} __attribute__((packed));
};
#define VIS_PACKET_V22_SIZE 8
struct vis_data_v22 {
guint8 type;
guint16 data;
address ip;
} __attribute__((packed));
};
#define VIS_PACKET_V22_DATA_SIZE 7
struct vis_packet_v23 {
@ -82,14 +82,14 @@ struct vis_packet_v23 {
guint8 version;
guint8 gw_class;
guint8 tq_max;
} __attribute__((packed));
};
#define VIS_PACKET_V23_SIZE 7
struct vis_data_v23 {
guint8 type;
guint8 data;
address ip;
} __attribute__((packed));
};
#define VIS_PACKET_V23_DATA_SIZE 6
#endif /* _PACKET_BAT_PACKET_H */

View File

@ -55,16 +55,16 @@ static const value_string packettypenames[] = {
{ DATA_TYPE_NEIGH, "NEIGH" },
{ DATA_TYPE_SEC_IF, "SEC_IF" },
{ DATA_TYPE_HNA, "HNA" },
{ 3, NULL }
{ 0, NULL }
};
void register_bat_vis(void)
{
static hf_register_info hf[] = {
{ &hf_bat_vis_vis_orig,
{ "Originator", "bat.vis.sender_ip",
FT_IPv4, BASE_NONE, NULL, 0x0,
"", HFILL }
{ "Originator", "bat.vis.sender_ip",
FT_IPv4, BASE_NONE, NULL, 0x0,
"", HFILL }
},
{ &hf_bat_vis_version,
{ "Version", "bat.vis.version",
@ -122,7 +122,7 @@ void register_bat_vis(void)
proto_register_subtree_array(ett, array_length(ett));
proto_register_field_array(proto_bat_plugin, hf, array_length(hf));
prefs_register_uint_preference(bat_module, "udp.vis.port", "VIS UDP Port",
prefs_register_uint_preference(bat_module, "batman.vis.port", "VIS UDP Port",
"Set the port for B.A.T.M.A.N. VIS "
"messages (if other than the default of 4307)",
10, &global_bat_vis_udp_port);
@ -167,6 +167,7 @@ static void dissect_bat_vis(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_append_fstr(pinfo->cinfo, COL_INFO, "Unsupported Version %d", version);
}
call_dissector(data_handle, tvb, pinfo, tree);
break;
}
}
@ -298,10 +299,9 @@ static void dissect_vis_entry_v22(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
proto_tree_add_item(bat_vis_entry_tree, hf_bat_vis_netmask, tvb, 1, 1, FALSE);
break;
case DATA_TYPE_SEC_IF:
default: {
;
default:
break;
}
};
proto_tree_add_ipv4(bat_vis_entry_tree, hf_bat_vis_data_ip, tvb, 3, 4, ip);
}
}
@ -434,10 +434,9 @@ static void dissect_vis_entry_v23(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
proto_tree_add_item(bat_vis_entry_tree, hf_bat_vis_netmask, tvb, 1, 1, FALSE);
break;
case DATA_TYPE_SEC_IF:
default: {
;
default:
break;
}
};
proto_tree_add_ipv4(bat_vis_entry_tree, hf_bat_vis_data_ip, tvb, 2, 4, ip);
}
}

View File

@ -26,11 +26,11 @@
#include "packet-bat.h"
/* forward declaration */
void proto_register_bat();
void proto_reg_handoff_bat();
void proto_register_bat(void);
void proto_reg_handoff_bat(void);
int proto_bat_plugin = -1;
module_t *bat_module;
module_t *bat_module = NULL;
/* tap */
int bat_tap = -1;