diff options
author | Anders Broman <anders.broman@ericsson.com> | 2006-05-16 19:04:53 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2006-05-16 19:04:53 +0000 |
commit | 56f73049b9671efeea99fbf7133845605f383e3e (patch) | |
tree | e9f47862efa7bf68a343e0230a62a230fcb53303 | |
parent | 103ad0253f531c40b35cc26194d90673d2ce99b4 (diff) |
From Martin Mathieson:
- adds application/xpidf+xml as a media type known to be xml
- appends /xml to the protocol column (as SDP does). It would be nice
to append the top-level element, or the name taken from a matching DTD,
but this will do for now (at least its a short name).
- corrects the help text for the preference. I can see that it is
registered as a heuristic for "http", "sip" and "media"
I've also included a slightly updated version of reginfo.dtd (RFC 3680)
for the dtds folder.
svn path=/trunk/; revision=18173
-rw-r--r-- | dtds/reginfo.dtd | 41 | ||||
-rw-r--r-- | epan/dissectors/packet-xml.c | 10 |
2 files changed, 48 insertions, 3 deletions
diff --git a/dtds/reginfo.dtd b/dtds/reginfo.dtd new file mode 100644 index 0000000000..d419948db1 --- /dev/null +++ b/dtds/reginfo.dtd @@ -0,0 +1,41 @@ +<? ethereal:protocol + proto_name="reginfo" + description="Reginfo XML doc (RFC 3680)" + hierarchy="yes" ?> + +<!-- +$Id$ +--> + +<!ELEMENT reginfo (registration)* > +<!ATTLIST reginfo xmlns CDATA #REQUIRED + version CDATA #REQUIRED + state CDATA #REQUIRED> + +<!ELEMENT registration (contact)*> +<!ATTLIST registration aor CDATA #REQUIRED + id CDATA #REQUIRED + state CDATA #REQUIRED> + +<!ELEMENT contact (uri | display-name? | unknown-param?)* > +<!ATTLIST contact id CDATA #REQUIRED + state CDATA #REQUIRED + event CDATA #REQUIRED + expires CDATA #IMPLIED + retry-after CDATA #IMPLIED + duration-registered CDATA #IMPLIED + q CDATA #IMPLIED + cseq CDATA #IMPLIED + callid CDATA #IMPLIED> + +<!ELEMENT uri (#PCDATA)> + +<!ELEMENT display-name (#PCDATA)> +<!ATTLIST display-name lang CDATA #IMPLIED> + +<!ELEMENT unknown-param (#PCDATA)> +<!ATTLIST unknown-param name CDATA #REQUIRED> + + + + diff --git a/epan/dissectors/packet-xml.c b/epan/dissectors/packet-xml.c index 11df7d00af..30dc18251e 100644 --- a/epan/dissectors/packet-xml.c +++ b/epan/dissectors/packet-xml.c @@ -160,6 +160,7 @@ static const gchar* default_media_types[] = { "application/xcap-error+xml", "application/xml", "application/xml-dtd", + "application/xpidf+xml", "application/xslt+xml", "image/svg+xml", }; @@ -171,7 +172,10 @@ dissect_xml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) tvbparse_elem_t* tok = NULL; static GPtrArray* stack = NULL; xml_frame_t* current_frame; - + + if (check_col(pinfo->cinfo, COL_PROTOCOL)) + col_append_str(pinfo->cinfo, COL_PROTOCOL, "/XML"); + if(!tree) return; if (stack != NULL) @@ -1118,7 +1122,7 @@ static void init_xml_names(void) { } if (test_for_directory(dirname) == EISDIR) { - + if ((dir = OPENDIR_OP(dirname)) != NULL) { while ((file = DIRGETNEXT_OP(dir)) != NULL) { guint namelen; @@ -1216,7 +1220,7 @@ proto_register_xml(void) { xml_module = prefs_register_protocol(xml_ns.hf_tag,apply_prefs); prefs_register_bool_preference(xml_module, "heuristic", "Use Heuristics", - "Try to recognize XML for unknown HTTP media types", + "Try to recognize XML for unknown media types", &pref_heuristic); g_array_free(hf_arr,FALSE); |