aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-11-24 08:22:57 -0500
committerMichael Mann <mmann78@netscape.net>2015-11-24 14:52:17 +0000
commit8a999d7bb843790ec069baf02cc4fbb2ea530605 (patch)
tree99552386aa0d555f1abc66bcb38d89992fea3630
parentdc93041dfe788af0aed776e1ec69fa3017424df2 (diff)
Convert T.124 API to use "new style" dissectors.
This seems like an unnecessary encapsulation of registering a dissector, but it can be used at runtime and not just a handoff function. Change-Id: Ic13e34b5cecf493115f27a984bb886f2f76bc7de Reviewed-on: https://code.wireshark.org/review/12096 Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--asn1/t124/packet-t124-template.c8
-rw-r--r--asn1/t124/packet-t124-template.h4
-rw-r--r--epan/dissectors/packet-rdp.c20
-rw-r--r--epan/dissectors/packet-t124.c8
-rw-r--r--epan/dissectors/packet-t124.h4
5 files changed, 24 insertions, 20 deletions
diff --git a/asn1/t124/packet-t124-template.c b/asn1/t124/packet-t124-template.c
index c8a7f27ac9..6dab75f214 100644
--- a/asn1/t124/packet-t124-template.c
+++ b/asn1/t124/packet-t124-template.c
@@ -74,15 +74,15 @@ static const per_sequence_t t124Heur_sequence[] = {
};
void
-register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto)
+register_t124_ns_dissector(const char *nsKey, new_dissector_t dissector, int proto)
{
dissector_handle_t dissector_handle;
- dissector_handle=create_dissector_handle(dissector, proto);
+ dissector_handle=new_create_dissector_handle(dissector, proto);
dissector_add_string("t124.ns", nsKey, dissector_handle);
}
-void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param, dissector_t dissector, int proto)
+void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param, new_dissector_t dissector, int proto)
{
/* XXX: we should keep the sub-dissectors list per conversation
as the same channels may be used.
@@ -91,7 +91,7 @@ void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param,
dissector_handle_t dissector_handle;
- dissector_handle=create_dissector_handle(dissector, proto);
+ dissector_handle=new_create_dissector_handle(dissector, proto);
dissector_add_uint("t124.sd", channelId_param, dissector_handle);
}
diff --git a/asn1/t124/packet-t124-template.h b/asn1/t124/packet-t124-template.h
index 487718c86a..f86b48501c 100644
--- a/asn1/t124/packet-t124-template.h
+++ b/asn1/t124/packet-t124-template.h
@@ -31,8 +31,8 @@ extern int dissect_DomainMCSPDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
extern guint32 t124_get_last_channelId(void);
extern void t124_set_top_tree(proto_tree *tree);
-extern void register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto);
-extern void register_t124_sd_dissector(packet_info *pinfo, guint32 channelId, dissector_t dissector, int proto);
+extern void register_t124_ns_dissector(const char *nsKey, new_dissector_t dissector, int proto);
+extern void register_t124_sd_dissector(packet_info *pinfo, guint32 channelId, new_dissector_t dissector, int proto);
#include "packet-t124-exp.h"
diff --git a/epan/dissectors/packet-rdp.c b/epan/dissectors/packet-rdp.c
index 7bccabacdd..3e77b1aa9c 100644
--- a/epan/dissectors/packet-rdp.c
+++ b/epan/dissectors/packet-rdp.c
@@ -1377,8 +1377,8 @@ dissect_rdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
return tree;
}
-static void
-dissect_rdp_SendData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+static int
+dissect_rdp_SendData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
proto_item *pi;
int offset = 0;
guint32 flags = 0;
@@ -1575,7 +1575,7 @@ dissect_rdp_SendData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
break;
}
- return;
+ return tvb_captured_length(tvb);
} /* licensing stage */
if (rdp_info && (t124_get_last_channelId() == rdp_info->staticChannelId)) {
@@ -1619,7 +1619,7 @@ dissect_rdp_SendData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
/* we may get multiple control headers in a single frame */
col_set_fence(pinfo->cinfo, COL_INFO);
- return;
+ return tvb_captured_length(tvb);
} /* (rdp_info && (t124_get_last_channelId() == rdp_info->staticChannelId)) */
/* Virtual Channel */
@@ -1631,10 +1631,12 @@ dissect_rdp_SendData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
/*offset =*/ dissect_rdp_channelPDU(tvb, offset, pinfo, tree);
else
/*offset =*/ dissect_rdp_encrypted(tvb, offset, pinfo, tree, "Channel PDU");
+
+ return tvb_captured_length(tvb);
}
-static void
-dissect_rdp_ClientData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+static int
+dissect_rdp_ClientData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
int offset = 0;
proto_item *pi;
proto_tree *next_tree;
@@ -1802,10 +1804,11 @@ dissect_rdp_ClientData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
}
offset += MAX(4, length); /* Use length from header, but advance at least 4 bytes */
}
+ return tvb_captured_length(tvb);
}
-static void
-dissect_rdp_ServerData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+static int
+dissect_rdp_ServerData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
int offset = 0;
proto_item *pi;
proto_tree *next_tree;
@@ -1985,6 +1988,7 @@ dissect_rdp_ServerData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
}
offset += MAX(4, length); /* Use length from header, but advance at least 4 bytes */
}
+ return tvb_captured_length(tvb);
}
/*--- proto_register_rdp -------------------------------------------*/
diff --git a/epan/dissectors/packet-t124.c b/epan/dissectors/packet-t124.c
index 19fd89da51..d9a9fd2790 100644
--- a/epan/dissectors/packet-t124.c
+++ b/epan/dissectors/packet-t124.c
@@ -2884,15 +2884,15 @@ static const per_sequence_t t124Heur_sequence[] = {
};
void
-register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto)
+register_t124_ns_dissector(const char *nsKey, new_dissector_t dissector, int proto)
{
dissector_handle_t dissector_handle;
- dissector_handle=create_dissector_handle(dissector, proto);
+ dissector_handle=new_create_dissector_handle(dissector, proto);
dissector_add_string("t124.ns", nsKey, dissector_handle);
}
-void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param, dissector_t dissector, int proto)
+void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param, new_dissector_t dissector, int proto)
{
/* XXX: we should keep the sub-dissectors list per conversation
as the same channels may be used.
@@ -2901,7 +2901,7 @@ void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param,
dissector_handle_t dissector_handle;
- dissector_handle=create_dissector_handle(dissector, proto);
+ dissector_handle=new_create_dissector_handle(dissector, proto);
dissector_add_uint("t124.sd", channelId_param, dissector_handle);
}
diff --git a/epan/dissectors/packet-t124.h b/epan/dissectors/packet-t124.h
index 48c15accc8..802001445c 100644
--- a/epan/dissectors/packet-t124.h
+++ b/epan/dissectors/packet-t124.h
@@ -39,8 +39,8 @@ extern int dissect_DomainMCSPDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
extern guint32 t124_get_last_channelId(void);
extern void t124_set_top_tree(proto_tree *tree);
-extern void register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto);
-extern void register_t124_sd_dissector(packet_info *pinfo, guint32 channelId, dissector_t dissector, int proto);
+extern void register_t124_ns_dissector(const char *nsKey, new_dissector_t dissector, int proto);
+extern void register_t124_sd_dissector(packet_info *pinfo, guint32 channelId, new_dissector_t dissector, int proto);
/*--- Included file: packet-t124-exp.h ---*/