aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rpcap.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-rpcap.c')
-rw-r--r--epan/dissectors/packet-rpcap.c273
1 files changed, 135 insertions, 138 deletions
diff --git a/epan/dissectors/packet-rpcap.c b/epan/dissectors/packet-rpcap.c
index 2e63a36be0..64931ba230 100644
--- a/epan/dissectors/packet-rpcap.c
+++ b/epan/dissectors/packet-rpcap.c
@@ -85,131 +85,131 @@
void proto_register_rpcap (void);
void proto_reg_handoff_rpcap (void);
-static int proto_rpcap = -1;
-
-static int hf_version = -1;
-static int hf_type = -1;
-static int hf_value = -1;
-static int hf_plen = -1;
-
-static int hf_error = -1;
-static int hf_error_value = -1;
-
-static int hf_packet = -1;
-static int hf_timestamp = -1;
-static int hf_caplen = -1;
-static int hf_len = -1;
-static int hf_npkt = -1;
-
-static int hf_auth_request = -1;
-static int hf_auth_type = -1;
-static int hf_auth_slen1 = -1;
-static int hf_auth_slen2 = -1;
-static int hf_auth_username = -1;
-static int hf_auth_password = -1;
-
-static int hf_auth_reply = -1;
-static int hf_auth_minvers = -1;
-static int hf_auth_maxvers = -1;
-
-static int hf_open_request = -1;
-
-static int hf_open_reply = -1;
-static int hf_linktype = -1;
-static int hf_tzoff = -1;
-
-static int hf_startcap_request = -1;
-static int hf_snaplen = -1;
-static int hf_read_timeout = -1;
-static int hf_flags = -1;
-static int hf_flags_promisc = -1;
-static int hf_flags_dgram = -1;
-static int hf_flags_serveropen = -1;
-static int hf_flags_inbound = -1;
-static int hf_flags_outbound = -1;
-static int hf_client_port = -1;
-static int hf_startcap_reply = -1;
-static int hf_bufsize = -1;
-static int hf_server_port = -1;
-static int hf_dummy = -1;
-
-static int hf_filter = -1;
-static int hf_filtertype = -1;
-static int hf_nitems = -1;
-
-static int hf_filterbpf_insn = -1;
-static int hf_code = -1;
-static int hf_code_class = -1;
-static int hf_code_fields = -1;
-static int hf_code_ld_size = -1;
-static int hf_code_ld_mode = -1;
-static int hf_code_alu_op = -1;
-static int hf_code_jmp_op = -1;
-static int hf_code_src = -1;
-static int hf_code_rval = -1;
-static int hf_code_misc_op = -1;
-static int hf_jt = -1;
-static int hf_jf = -1;
-static int hf_instr_value = -1;
-
-static int hf_stats_reply = -1;
-static int hf_ifrecv = -1;
-static int hf_ifdrop = -1;
-static int hf_krnldrop = -1;
-static int hf_srvcapt = -1;
-
-static int hf_findalldevs_reply = -1;
-static int hf_findalldevs_if = -1;
-static int hf_namelen = -1;
-static int hf_desclen = -1;
-static int hf_if_flags = -1;
-static int hf_naddr = -1;
-static int hf_if_name = -1;
-static int hf_if_desc = -1;
-
-static int hf_findalldevs_ifaddr = -1;
-static int hf_if_addr = -1;
-static int hf_if_netmask = -1;
-static int hf_if_broadaddr = -1;
-static int hf_if_dstaddr = -1;
-static int hf_if_af = -1;
-static int hf_if_port = -1;
-static int hf_if_ipv4 = -1;
-static int hf_if_flowinfo = -1;
-static int hf_if_ipv6 = -1;
-static int hf_if_scopeid = -1;
-static int hf_if_padding = -1;
-static int hf_if_unknown = -1;
-
-static int hf_sampling_request = -1;
-static int hf_sampling_method = -1;
-static int hf_sampling_dummy1 = -1;
-static int hf_sampling_dummy2 = -1;
-static int hf_sampling_value = -1;
-
-static gint ett_rpcap = -1;
-static gint ett_error = -1;
-static gint ett_packet = -1;
-static gint ett_auth_request = -1;
-static gint ett_auth_reply = -1;
-static gint ett_open_reply = -1;
-static gint ett_startcap_request = -1;
-static gint ett_startcap_reply = -1;
-static gint ett_startcap_flags = -1;
-static gint ett_filter = -1;
-static gint ett_filterbpf_insn = -1;
-static gint ett_filterbpf_insn_code = -1;
-static gint ett_stats_reply = -1;
-static gint ett_findalldevs_reply = -1;
-static gint ett_findalldevs_if = -1;
-static gint ett_findalldevs_ifaddr = -1;
-static gint ett_ifaddr = -1;
-static gint ett_sampling_request = -1;
-
-static expert_field ei_error = EI_INIT;
-static expert_field ei_if_unknown = EI_INIT;
-static expert_field ei_no_more_data = EI_INIT;
-static expert_field ei_caplen_too_big = EI_INIT;
+static int proto_rpcap;
+
+static int hf_version;
+static int hf_type;
+static int hf_value;
+static int hf_plen;
+
+static int hf_error;
+static int hf_error_value;
+
+static int hf_packet;
+static int hf_timestamp;
+static int hf_caplen;
+static int hf_len;
+static int hf_npkt;
+
+static int hf_auth_request;
+static int hf_auth_type;
+static int hf_auth_slen1;
+static int hf_auth_slen2;
+static int hf_auth_username;
+static int hf_auth_password;
+
+static int hf_auth_reply;
+static int hf_auth_minvers;
+static int hf_auth_maxvers;
+
+static int hf_open_request;
+
+static int hf_open_reply;
+static int hf_linktype;
+static int hf_tzoff;
+
+static int hf_startcap_request;
+static int hf_snaplen;
+static int hf_read_timeout;
+static int hf_flags;
+static int hf_flags_promisc;
+static int hf_flags_dgram;
+static int hf_flags_serveropen;
+static int hf_flags_inbound;
+static int hf_flags_outbound;
+static int hf_client_port;
+static int hf_startcap_reply;
+static int hf_bufsize;
+static int hf_server_port;
+static int hf_dummy;
+
+static int hf_filter;
+static int hf_filtertype;
+static int hf_nitems;
+
+static int hf_filterbpf_insn;
+static int hf_code;
+static int hf_code_class;
+static int hf_code_fields;
+static int hf_code_ld_size;
+static int hf_code_ld_mode;
+static int hf_code_alu_op;
+static int hf_code_jmp_op;
+static int hf_code_src;
+static int hf_code_rval;
+static int hf_code_misc_op;
+static int hf_jt;
+static int hf_jf;
+static int hf_instr_value;
+
+static int hf_stats_reply;
+static int hf_ifrecv;
+static int hf_ifdrop;
+static int hf_krnldrop;
+static int hf_srvcapt;
+
+static int hf_findalldevs_reply;
+static int hf_findalldevs_if;
+static int hf_namelen;
+static int hf_desclen;
+static int hf_if_flags;
+static int hf_naddr;
+static int hf_if_name;
+static int hf_if_desc;
+
+static int hf_findalldevs_ifaddr;
+static int hf_if_addr;
+static int hf_if_netmask;
+static int hf_if_broadaddr;
+static int hf_if_dstaddr;
+static int hf_if_af;
+static int hf_if_port;
+static int hf_if_ipv4;
+static int hf_if_flowinfo;
+static int hf_if_ipv6;
+static int hf_if_scopeid;
+static int hf_if_padding;
+static int hf_if_unknown;
+
+static int hf_sampling_request;
+static int hf_sampling_method;
+static int hf_sampling_dummy1;
+static int hf_sampling_dummy2;
+static int hf_sampling_value;
+
+static gint ett_rpcap;
+static gint ett_error;
+static gint ett_packet;
+static gint ett_auth_request;
+static gint ett_auth_reply;
+static gint ett_open_reply;
+static gint ett_startcap_request;
+static gint ett_startcap_reply;
+static gint ett_startcap_flags;
+static gint ett_filter;
+static gint ett_filterbpf_insn;
+static gint ett_filterbpf_insn_code;
+static gint ett_stats_reply;
+static gint ett_findalldevs_reply;
+static gint ett_findalldevs_if;
+static gint ett_findalldevs_ifaddr;
+static gint ett_ifaddr;
+static gint ett_sampling_request;
+
+static expert_field ei_error;
+static expert_field ei_if_unknown;
+static expert_field ei_no_more_data;
+static expert_field ei_caplen_too_big;
static dissector_handle_t pcap_pktdata_handle;
static dissector_handle_t rpcap_tcp_handle;
@@ -363,17 +363,15 @@ dissect_rpcap_error (tvbuff_t *tvb, packet_info *pinfo,
{
proto_item *ti;
gint len;
+ char *str;
len = tvb_reported_length_remaining (tvb, offset);
if (len <= 0)
return;
- col_append_fstr (pinfo->cinfo, COL_INFO, ": %s",
- tvb_format_text_wsp (pinfo->pool, tvb, offset, len));
-
- ti = proto_tree_add_item (parent_tree, hf_error, tvb, offset, len, ENC_ASCII|ENC_NA);
- expert_add_info_format(pinfo, ti, &ei_error,
- "Error: %s", tvb_format_text_wsp (pinfo->pool, tvb, offset, len));
+ ti = proto_tree_add_item_ret_display_string(parent_tree, hf_error, tvb, offset, len, ENC_ASCII, pinfo->pool, &str);
+ expert_add_info_format(pinfo, ti, &ei_error, "Error: %s", str);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ": %s", str);
}
/*
@@ -481,7 +479,7 @@ dissect_rpcap_ifaddr (tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree;
proto_item *ti;
guint16 af;
- guint32 ipv4;
+ ws_in4_addr ipv4;
ws_in6_addr ipv6;
gchar ipaddr[MAX_ADDR_STR_LEN];
@@ -501,7 +499,7 @@ dissect_rpcap_ifaddr (tvbuff_t *tvb, packet_info *pinfo,
offset += 2;
ipv4 = tvb_get_ipv4 (tvb, offset);
- ip_to_str_buf((guint8 *)&ipv4, ipaddr, MAX_ADDR_STR_LEN);
+ ip_addr_to_str_buf(&ipv4, ipaddr, MAX_ADDR_STR_LEN);
proto_item_append_text (ti, ": %s", ipaddr);
if (parent_item) {
proto_item_append_text (parent_item, ": %s", ipaddr);
@@ -618,7 +616,7 @@ dissect_rpcap_findalldevs_if (tvbuff_t *tvb, packet_info *pinfo _U_,
}
if (desclen) {
- proto_tree_add_item (tree, hf_if_desc, tvb, offset, desclen, ENC_ASCII|ENC_NA);
+ proto_tree_add_item (tree, hf_if_desc, tvb, offset, desclen, ENC_ASCII);
offset += desclen;
}
@@ -825,7 +823,7 @@ dissect_rpcap_open_request (tvbuff_t *tvb, packet_info *pinfo _U_,
gint len;
len = tvb_reported_length_remaining (tvb, offset);
- proto_tree_add_item (parent_tree, hf_open_request, tvb, offset, len, ENC_ASCII|ENC_NA);
+ proto_tree_add_item (parent_tree, hf_open_request, tvb, offset, len, ENC_ASCII);
}
@@ -1321,7 +1319,7 @@ proto_register_rpcap (void)
/* Error */
{ &hf_error,
- { "Error", "rpcap.error", FT_STRING, BASE_NONE,
+ { "Error", "rpcap.error", FT_STRING, BASE_STR_WSP,
NULL, 0x0, "Error text", HFILL } },
{ &hf_error_value,
{ "Error value", "rpcap.error_value", FT_UINT16, BASE_DEC,
@@ -1635,6 +1633,7 @@ proto_register_rpcap (void)
proto_rpcap = proto_register_protocol (PNAME, PSNAME, PFNAME);
register_dissector (PFNAME, dissect_rpcap, proto_rpcap);
+ rpcap_tcp_handle = register_dissector(PFNAME ".tcp", dissect_rpcap_tcp, proto_rpcap);
expert_rpcap = expert_register_protocol(proto_rpcap);
expert_register_field_array(expert_rpcap, ei, array_length(ei));
@@ -1674,8 +1673,6 @@ proto_reg_handoff_rpcap (void)
heur_dissector_add ("tcp", dissect_rpcap_heur_tcp, "RPCAP over TCP", "rpcap_tcp", proto_rpcap, HEURISTIC_ENABLE);
heur_dissector_add ("udp", dissect_rpcap_heur_udp, "RPCAP over UDP", "rpcap_udp", proto_rpcap, HEURISTIC_ENABLE);
-
- rpcap_tcp_handle = create_dissector_handle(dissect_rpcap_tcp, proto_rpcap);
}
info_added = FALSE;