aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2010-06-09 17:16:33 +0000
committerBill Meier <wmeier@newsguy.com>2010-06-09 17:16:33 +0000
commit39b087896f4fd12ef4c343e92294a2551cf45f9d (patch)
tree10286497a2e17ea1f3f44b7abaaf51cfb978ea41 /epan
parentf38e41b5c1ffa70872a3419eeae8eee234ce5c03 (diff)
Revise code slightly; mostly: remove some unnecessary if tests ....
svn path=/trunk/; revision=33191
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-quake.c26
-rw-r--r--epan/dissectors/packet-quake2.c167
-rw-r--r--epan/dissectors/packet-quake3.c185
3 files changed, 165 insertions, 213 deletions
diff --git a/epan/dissectors/packet-quake.c b/epan/dissectors/packet-quake.c
index dd348a42e9..28efb0a09f 100644
--- a/epan/dissectors/packet-quake.c
+++ b/epan/dissectors/packet-quake.c
@@ -356,7 +356,6 @@ dissect_quake_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint8 command;
int direction;
- proto_item *control_item = NULL;
proto_tree *control_tree = NULL;
guint rest_length;
tvbuff_t *next_tvb;
@@ -371,13 +370,12 @@ dissect_quake_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
if (tree) {
+ proto_item *control_item;
control_item = proto_tree_add_text(tree, tvb,
0, -1, "Control %s: %s",
val_to_str(direction, names_control_direction, "%u"),
val_to_str(command, names_control_command, "%u"));
- if (control_item)
- control_tree = proto_item_add_subtree(control_item,
- ett_quake_control);
+ control_tree = proto_item_add_subtree(control_item, ett_quake_control);
proto_tree_add_uint(control_tree, hf_quake_control_command,
tvb, 0, 1, command);
}
@@ -387,39 +385,39 @@ dissect_quake_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
switch (command) {
case CCREQ_CONNECT:
dissect_quake_CCREQ_CONNECT
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
case CCREQ_SERVER_INFO:
dissect_quake_CCREQ_SERVER_INFO
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
case CCREQ_PLAYER_INFO:
dissect_quake_CCREQ_PLAYER_INFO
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
case CCREQ_RULE_INFO:
dissect_quake_CCREQ_RULE_INFO
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
case CCREP_ACCEPT:
dissect_quake_CCREP_ACCEPT
- (next_tvb, pinfo, control_tree);
+ (next_tvb, pinfo, control_tree);
break;
case CCREP_REJECT:
dissect_quake_CCREP_REJECT
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
case CCREP_SERVER_INFO:
dissect_quake_CCREP_SERVER_INFO
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
case CCREP_PLAYER_INFO:
dissect_quake_CCREP_PLAYER_INFO
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
case CCREP_RULE_INFO:
dissect_quake_CCREP_RULE_INFO
- (next_tvb, control_tree);
+ (next_tvb, control_tree);
break;
default:
call_dissector(data_handle,next_tvb, pinfo, control_tree);
@@ -432,7 +430,6 @@ static void
dissect_quake(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_tree *quake_tree = NULL;
- proto_item *quake_item = NULL;
guint32 length;
guint32 flags;
guint32 sequence = 0;
@@ -447,6 +444,7 @@ dissect_quake(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
length &= NETFLAG_LENGTH_MASK;
if (tree) {
+ proto_item *quake_item;
quake_item = proto_tree_add_item(tree, proto_quake,
tvb, 0, -1, FALSE);
quake_tree = proto_item_add_subtree(quake_item, ett_quake);
diff --git a/epan/dissectors/packet-quake2.c b/epan/dissectors/packet-quake2.c
index 184f122da7..24f232c7ec 100644
--- a/epan/dissectors/packet-quake2.c
+++ b/epan/dissectors/packet-quake2.c
@@ -91,7 +91,6 @@ dissect_quake2_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
proto_tree *tree, int direction _U_)
{
proto_tree *cl_tree = NULL;
- proto_item *cl_item = NULL;
guint8 *text;
int len;
int offset;
@@ -100,14 +99,10 @@ dissect_quake2_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
marker = tvb_get_ntohl(tvb, 0);
if (tree) {
+ proto_item *cl_item = NULL;
cl_item = proto_tree_add_text(tree, tvb,
0, -1, "Connectionless");
- if (cl_item)
- cl_tree = proto_item_add_subtree(
- cl_item, ett_quake2_connectionless);
- }
-
- if (cl_tree) {
+ cl_tree = proto_item_add_subtree(cl_item, ett_quake2_connectionless);
proto_tree_add_uint(cl_tree, hf_quake2_connectionless_marker,
tvb, 0, 4, marker);
}
@@ -150,8 +145,8 @@ dissect_quake2_client_commands_move(tvbuff_t *tvb, packet_info *pinfo _U_,
#define CM_IMPULSE (1<<7)
/* qshared.h */
#define BUTTON_ATTACK 1
- #define BUTTON_USE 2
- #define BUTTON_ANY 128
+ #define BUTTON_USE 2
+ #define BUTTON_ANY 128
guint8 chksum;
guint32 lastframe;
@@ -408,12 +403,9 @@ dissect_quake2_client_commands(tvbuff_t *tvb, packet_info *pinfo,
hf_quake2_game_client_command, tvb, offset, 1,
client_cmd_type);
- if (cmd_type_item) {
- proto_item_append_text(cmd_type_item, " (%s)",
- val_to_str(client_cmd_type, names_client_cmd, "%u"));
- clc_tree = proto_item_add_subtree(
- cmd_type_item, ett_quake2_game_clc_cmd);
- }
+ proto_item_append_text(cmd_type_item, " (%s)",
+ val_to_str(client_cmd_type, names_client_cmd, "%u"));
+ clc_tree = proto_item_add_subtree(cmd_type_item, ett_quake2_game_clc_cmd);
}
offset++;
@@ -504,7 +496,6 @@ dissect_quake2_server_commands(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree)
{
tvbuff_t *next_tvb = NULL;
- proto_item *cmd_type_item = NULL;
guint8 server_cmd_type;
guint rest_length = 0;
int offset = 0;
@@ -512,13 +503,12 @@ dissect_quake2_server_commands(tvbuff_t *tvb, packet_info *pinfo,
server_cmd_type = tvb_get_guint8(tvb, offset);
if (tree) {
+ proto_item *cmd_type_item;
cmd_type_item = proto_tree_add_uint(tree,
hf_quake2_game_server_command, tvb, offset, 1, server_cmd_type);
- if (cmd_type_item) {
- proto_item_append_text(cmd_type_item, " (%s)",
- val_to_str(server_cmd_type, names_server_cmd, "%u"));
- }
+ proto_item_append_text(cmd_type_item, " (%s)",
+ val_to_str(server_cmd_type, names_server_cmd, "%u"));
}
offset++;
@@ -584,7 +574,6 @@ static const value_string names_reliable[] = {
{ 0, NULL }
};
-
static const value_string names_direction[] = {
#define DIR_C2S 0
{ DIR_C2S, "Client to Server" },
@@ -598,24 +587,22 @@ static void
dissect_quake2_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, int direction)
{
- proto_tree *game_tree = NULL;
- proto_item *game_item = NULL;
- guint32 seq1;
- guint32 seq2;
- int rel1;
- int rel2;
- int offset;
- guint rest_length;
+ proto_tree *game_tree = NULL;
+ guint32 seq1;
+ guint32 seq2;
+ int rel1;
+ int rel2;
+ int offset;
+ guint rest_length;
direction = (pinfo->destport == gbl_quake2ServerPort) ?
DIR_C2S : DIR_S2C;
if (tree) {
+ proto_item *game_item;
game_item = proto_tree_add_text(tree, tvb,
0, -1, "Game");
- if (game_item)
- game_tree = proto_item_add_subtree(
- game_item, ett_quake2_game);
+ game_tree = proto_item_add_subtree(game_item, ett_quake2_game);
}
offset = 0;
@@ -627,14 +614,12 @@ dissect_quake2_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
proto_item *seq1_item = proto_tree_add_text(game_tree,
tvb, offset, 4, "Current Sequence: %u (%s)",
seq1, val_to_str(rel1,names_reliable,"%u"));
- if (seq1_item) {
- proto_tree *seq1_tree = proto_item_add_subtree(
- seq1_item, ett_quake2_game_seq1);
- proto_tree_add_uint(seq1_tree, hf_quake2_game_seq1,
- tvb, offset, 4, seq1);
- proto_tree_add_boolean(seq1_tree, hf_quake2_game_rel1,
- tvb, offset+3, 1, rel1);
- }
+ proto_tree *seq1_tree = proto_item_add_subtree(
+ seq1_item, ett_quake2_game_seq1);
+ proto_tree_add_uint(seq1_tree, hf_quake2_game_seq1,
+ tvb, offset, 4, seq1);
+ proto_tree_add_boolean(seq1_tree, hf_quake2_game_rel1,
+ tvb, offset+3, 1, rel1);
}
offset += 4;
@@ -645,14 +630,12 @@ dissect_quake2_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
proto_item *seq2_item = proto_tree_add_text(game_tree,
tvb, offset, 4, "Acknowledge Sequence: %u (%s)",
seq2, val_to_str(rel2,names_reliable,"%u"));
- if (seq2_item) {
- proto_tree *seq2_tree = proto_item_add_subtree(
- seq2_item, ett_quake2_game_seq2);
- proto_tree_add_uint(seq2_tree, hf_quake2_game_seq2,
- tvb, offset, 4, seq2);
- proto_tree_add_boolean(seq2_tree, hf_quake2_game_rel2,
- tvb, offset+3, 1, rel2);
- }
+ proto_tree *seq2_tree = proto_item_add_subtree(
+ seq2_item, ett_quake2_game_seq2);
+ proto_tree_add_uint(seq2_tree, hf_quake2_game_seq2,
+ tvb, offset, 4, seq2);
+ proto_tree_add_boolean(seq2_tree, hf_quake2_game_rel2,
+ tvb, offset+3, 1, rel2);
}
offset += 4;
@@ -673,28 +656,22 @@ dissect_quake2_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
tvb_new_subset(tvb, offset, rest_length , rest_length);
if (direction == DIR_C2S) {
- proto_item *c_item = NULL;
proto_tree *c_tree = NULL;
if (tree) {
+ proto_item *c_item;
c_item = proto_tree_add_text(game_tree, next_tvb,
- 0, -1, "Client Commands");
- if (c_item) {
- c_tree = proto_item_add_subtree(
- c_item, ett_quake2_game_clc);
- }
+ 0, -1, "Client Commands");
+ c_tree = proto_item_add_subtree(c_item, ett_quake2_game_clc);
}
dissect_quake2_client_commands(next_tvb, pinfo, c_tree);
}
else {
- proto_item *c_item = NULL;
proto_tree *c_tree = NULL;
if (tree) {
+ proto_item *c_item;
c_item = proto_tree_add_text(game_tree, next_tvb,
- 0, -1, "Server Commands");
- if (c_item) {
- c_tree = proto_item_add_subtree(
- c_item, ett_quake2_game_svc);
- }
+ 0, -1, "Server Commands");
+ c_tree = proto_item_add_subtree(c_item, ett_quake2_game_svc);
}
dissect_quake2_server_commands(next_tvb, pinfo, c_tree);
}
@@ -706,7 +683,6 @@ static void
dissect_quake2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_tree *quake2_tree = NULL;
- proto_item *quake2_item = NULL;
int direction;
direction = (pinfo->destport == gbl_quake2ServerPort) ?
@@ -718,19 +694,16 @@ dissect_quake2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
names_direction, "%u"));
if (tree) {
+ proto_item *quake2_item;
quake2_item = proto_tree_add_item(tree, proto_quake2,
- tvb, 0, -1, FALSE);
- if (quake2_item)
- quake2_tree = proto_item_add_subtree(
- quake2_item, ett_quake2);
- if (quake2_tree) {
- proto_tree_add_uint_format(quake2_tree,
- direction == DIR_S2C ?
- hf_quake2_s2c :
- hf_quake2_c2s,
- tvb, 0, 0, 1,
- "Direction: %s", val_to_str(direction, names_direction, "%u"));
- }
+ tvb, 0, -1, FALSE);
+ quake2_tree = proto_item_add_subtree(quake2_item, ett_quake2);
+ proto_tree_add_uint_format(quake2_tree,
+ direction == DIR_S2C ?
+ hf_quake2_s2c :
+ hf_quake2_c2s,
+ tvb, 0, 0, 1,
+ "Direction: %s", val_to_str(direction, names_direction, "%u"));
}
if (tvb_get_ntohl(tvb, 0) == 0xffffffff) {
@@ -756,28 +729,7 @@ dissect_quake2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
-void
-proto_reg_handoff_quake2(void)
-{
- static gboolean Initialized=FALSE;
- static dissector_handle_t quake2_handle;
- static guint ServerPort;
-
- if (!Initialized) {
- quake2_handle = create_dissector_handle(dissect_quake2,
- proto_quake2);
- data_handle = find_dissector("data");
- Initialized=TRUE;
- } else {
- dissector_delete("udp.port", ServerPort, quake2_handle);
- }
-
- /* set port for future deletes */
- ServerPort=gbl_quake2ServerPort;
-
- dissector_add("udp.port", gbl_quake2ServerPort, quake2_handle);
-}
-
+void proto_reg_handoff_quake2(void);
void
proto_register_quake2(void)
@@ -924,3 +876,28 @@ proto_register_quake2(void)
"Set the UDP port for the Quake II Server",
10, &gbl_quake2ServerPort);
}
+
+
+void
+proto_reg_handoff_quake2(void)
+{
+ static gboolean Initialized=FALSE;
+ static dissector_handle_t quake2_handle;
+ static guint ServerPort;
+
+ if (!Initialized) {
+ quake2_handle = create_dissector_handle(dissect_quake2,
+ proto_quake2);
+ data_handle = find_dissector("data");
+ Initialized=TRUE;
+ } else {
+ dissector_delete("udp.port", ServerPort, quake2_handle);
+ }
+
+ /* set port for future deletes */
+ ServerPort=gbl_quake2ServerPort;
+
+ dissector_add("udp.port", gbl_quake2ServerPort, quake2_handle);
+}
+
+
diff --git a/epan/dissectors/packet-quake3.c b/epan/dissectors/packet-quake3.c
index 89c244196e..61fb11f729 100644
--- a/epan/dissectors/packet-quake3.c
+++ b/epan/dissectors/packet-quake3.c
@@ -145,7 +145,6 @@ dissect_quake3_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
proto_tree *tree, int* direction)
{
proto_tree *cl_tree = NULL;
- proto_item *cl_item = NULL;
proto_item *text_item = NULL;
proto_tree *text_tree = NULL;
guint8 text[2048];
@@ -154,22 +153,18 @@ dissect_quake3_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
guint32 marker;
int command;
int command_len;
- int command_finished = FALSE;
+ gboolean command_finished = FALSE;
marker = tvb_get_ntohl(tvb, 0);
if (tree) {
+ proto_item *cl_item = NULL;
cl_item = proto_tree_add_text(tree, tvb,
0, -1, "Connectionless");
- if (cl_item)
- cl_tree = proto_item_add_subtree(
- cl_item, ett_quake3_connectionless);
- }
+ cl_tree = proto_item_add_subtree(cl_item, ett_quake3_connectionless);
- if (cl_tree) {
proto_tree_add_uint(cl_tree, hf_quake3_connectionless_marker,
- tvb, 0, 4, marker);
+ tvb, 0, 4, marker);
}
-
/* all the rest of the packet is just text */
offset = 4;
@@ -178,11 +173,7 @@ dissect_quake3_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
text_item = proto_tree_add_string(cl_tree,
hf_quake3_connectionless_text,
tvb, offset, len + 1, text);
- if (text_item) {
- text_tree = proto_item_add_subtree(
- text_item,
- ett_quake3_connectionless_text);
- }
+ text_tree = proto_item_add_subtree(text_item, ett_quake3_connectionless_text);
}
command = COMMAND_UNKNOWN;
@@ -274,8 +265,6 @@ dissect_quake3_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
while (tvb_reported_length_remaining(tvb, base) >= 7) {
guint32 ip_addr;
guint16 udp_port;
- proto_item *server_item = NULL;
- proto_tree *server_tree = NULL;
ip_addr = tvb_get_ipv4(tvb, base + 1);
udp_port = tvb_get_ntohs(tvb, base + 5);
@@ -286,21 +275,20 @@ dissect_quake3_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
may run on totally unusual ports. */
if (text_tree) {
+ proto_item *server_item;
+ proto_tree *server_tree;
server_item = proto_tree_add_text(text_tree,
tvb, base, 7,
"Server: %s:%u",
get_hostname(ip_addr),
udp_port);
- if (server_item)
- server_tree = proto_item_add_subtree(
- server_item,
- ett_quake3_server);
- }
- if (server_tree) {
+ server_tree = proto_item_add_subtree(
+ server_item,
+ ett_quake3_server);
proto_tree_add_ipv4(server_tree, hf_quake3_server_addr,
- tvb, base + 1, 4, ip_addr);
+ tvb, base + 1, 4, ip_addr);
proto_tree_add_uint(server_tree, hf_quake3_server_port,
- tvb, base + 5, 2, udp_port);
+ tvb, base + 5, 2, udp_port);
}
base += 7;
@@ -372,7 +360,6 @@ dissect_quake3_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, int *direction)
{
proto_tree *game_tree = NULL;
- proto_item *game_item = NULL;
guint32 seq1;
guint32 seq2;
int rel1;
@@ -384,11 +371,9 @@ dissect_quake3_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
DIR_C2S : DIR_S2C;
if (tree) {
- game_item = proto_tree_add_text(tree, tvb,
- 0, -1, "Game");
- if (game_item)
- game_tree = proto_item_add_subtree(
- game_item, ett_quake3_game);
+ proto_item *game_item;
+ game_item = proto_tree_add_text(tree, tvb, 0, -1, "Game");
+ game_tree = proto_item_add_subtree(game_item, ett_quake3_game);
}
offset = 0;
@@ -400,14 +385,12 @@ dissect_quake3_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
proto_item *seq1_item = proto_tree_add_text(game_tree,
tvb, offset, 2, "Current Sequence: %u (%s)",
seq1, val_to_str(rel1,names_reliable,"%u"));
- if (seq1_item) {
- proto_tree *seq1_tree = proto_item_add_subtree(
- seq1_item, ett_quake3_game_seq1);
- proto_tree_add_uint(seq1_tree, hf_quake3_game_seq1,
- tvb, offset, 2, seq1);
- proto_tree_add_boolean(seq1_tree, hf_quake3_game_rel1,
- tvb, offset+1, 1, rel1);
- }
+ proto_tree *seq1_tree = proto_item_add_subtree(
+ seq1_item, ett_quake3_game_seq1);
+ proto_tree_add_uint(seq1_tree, hf_quake3_game_seq1,
+ tvb, offset, 2, seq1);
+ proto_tree_add_boolean(seq1_tree, hf_quake3_game_rel1,
+ tvb, offset+1, 1, rel1);
}
offset += 2;
@@ -418,14 +401,12 @@ dissect_quake3_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
proto_item *seq2_item = proto_tree_add_text(game_tree,
tvb, offset, 2, "Acknowledge Sequence: %u (%s)",
seq2, val_to_str(rel2,names_reliable,"%u"));
- if (seq2_item) {
- proto_tree *seq2_tree = proto_item_add_subtree(
- seq2_item, ett_quake3_game_seq2);
- proto_tree_add_uint(seq2_tree, hf_quake3_game_seq2,
- tvb, offset, 2, seq2);
- proto_tree_add_boolean(seq2_tree, hf_quake3_game_rel2,
- tvb, offset+1, 1, rel2);
- }
+ proto_tree *seq2_tree = proto_item_add_subtree(
+ seq2_item, ett_quake3_game_seq2);
+ proto_tree_add_uint(seq2_tree, hf_quake3_game_seq2,
+ tvb, offset, 2, seq2);
+ proto_tree_add_boolean(seq2_tree, hf_quake3_game_rel2,
+ tvb, offset+1, 1, rel2);
}
offset += 2;
@@ -446,28 +427,24 @@ dissect_quake3_GamePacket(tvbuff_t *tvb, packet_info *pinfo,
tvb_new_subset(tvb, offset, rest_length , rest_length);
if (*direction == DIR_C2S) {
- proto_item *c_item = NULL;
proto_tree *c_tree = NULL;
if (tree) {
+ proto_item *c_item;
c_item = proto_tree_add_text(game_tree, next_tvb,
- 0, -1, "Client Commands");
- if (c_item) {
- c_tree = proto_item_add_subtree(
- c_item, ett_quake3_game_clc);
- }
+ 0, -1, "Client Commands");
+ c_tree = proto_item_add_subtree(
+ c_item, ett_quake3_game_clc);
}
dissect_quake3_client_commands(next_tvb, pinfo, c_tree);
}
else {
- proto_item *c_item = NULL;
proto_tree *c_tree = NULL;
if (tree) {
+ proto_item *c_item;
c_item = proto_tree_add_text(game_tree, next_tvb,
- 0, -1, "Server Commands");
- if (c_item) {
- c_tree = proto_item_add_subtree(
+ 0, -1, "Server Commands");
+ c_tree = proto_item_add_subtree(
c_item, ett_quake3_game_svc);
- }
}
dissect_quake3_server_commands(next_tvb, pinfo, c_tree);
}
@@ -479,7 +456,6 @@ static void
dissect_quake3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_tree *quake3_tree = NULL;
- proto_item *quake3_item = NULL;
proto_item *dir_item = NULL;
int direction;
@@ -488,20 +464,17 @@ dissect_quake3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_set_str(pinfo->cinfo, COL_PROTOCOL, "QUAKE3");
if (tree) {
+ proto_item *quake3_item;
quake3_item = proto_tree_add_item(tree, proto_quake3,
tvb, 0, -1, FALSE);
- if (quake3_item)
- quake3_tree = proto_item_add_subtree(
- quake3_item, ett_quake3);
-
- if (quake3_tree) {
- dir_item = proto_tree_add_none_format(
- quake3_tree,
- hf_quake3_direction, tvb, 0, 0,
- "Direction: %s",
- val_to_str(direction,
- names_direction, "%u"));
- }
+ quake3_tree = proto_item_add_subtree(quake3_item, ett_quake3);
+
+ dir_item = proto_tree_add_none_format(
+ quake3_tree,
+ hf_quake3_direction, tvb, 0, 0,
+ "Direction: %s",
+ val_to_str(direction,
+ names_direction, "%u"));
}
if (tvb_get_ntohl(tvb, 0) == 0xffffffff) {
@@ -536,40 +509,7 @@ dissect_quake3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
-void
-proto_reg_handoff_quake3(void)
-{
- static gboolean initialized=FALSE;
- static dissector_handle_t quake3_handle;
- static guint server_port;
- static guint master_port;
- int i;
-
- if (!initialized) {
- quake3_handle = create_dissector_handle(dissect_quake3,
- proto_quake3);
- data_handle = find_dissector("data");
- initialized=TRUE;
- } else {
- for (i=0;i<4;i++)
- dissector_delete("udp.port", server_port+i, quake3_handle);
- for (i=0;i<4;i++)
- dissector_delete("udp.port", master_port+i, quake3_handle);
- }
-
- /* set port for future deletes */
- server_port = gbl_quake3_server_port;
- master_port = gbl_quake3_master_port;
-
- /* add dissectors */
- for (i=0;i<4;i++)
- dissector_add("udp.port", gbl_quake3_server_port + i,
- quake3_handle);
- for (i=0;i<4;i++)
- dissector_add("udp.port", gbl_quake3_master_port + i,
- quake3_handle);
-}
-
+void proto_reg_handoff_quake3(void);
void
proto_register_quake3(void)
@@ -658,3 +598,40 @@ proto_register_quake3(void)
"Set the UDP base port for the Quake III Arena Master Server",
10, &gbl_quake3_master_port);
}
+
+
+void
+proto_reg_handoff_quake3(void)
+{
+ static gboolean initialized=FALSE;
+ static dissector_handle_t quake3_handle;
+ static guint server_port;
+ static guint master_port;
+ int i;
+
+ if (!initialized) {
+ quake3_handle = create_dissector_handle(dissect_quake3,
+ proto_quake3);
+ data_handle = find_dissector("data");
+ initialized=TRUE;
+ } else {
+ for (i=0;i<4;i++)
+ dissector_delete("udp.port", server_port+i, quake3_handle);
+ for (i=0;i<4;i++)
+ dissector_delete("udp.port", master_port+i, quake3_handle);
+ }
+
+ /* set port for future deletes */
+ server_port = gbl_quake3_server_port;
+ master_port = gbl_quake3_master_port;
+
+ /* add dissectors */
+ for (i=0;i<4;i++)
+ dissector_add("udp.port", gbl_quake3_server_port + i,
+ quake3_handle);
+ for (i=0;i<4;i++)
+ dissector_add("udp.port", gbl_quake3_master_port + i,
+ quake3_handle);
+}
+
+