Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-1564

axutil_uri_parse_string() only parses URLs, not URIs

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.6.0
    • 1.7.0
    • util
    • None

    Description

      axutil_uri_parse_string() appears designed to handle parsing of URLs, not generic URIs (which consist of both URLs and URNs). A URN consists of a scheme ("urn") followed by a colon, a namespace, another colon an then a name within that namespace. The name itself may contain further colons.

      It appears that axutil_uri_parse_string is expecting that a second colon in the input string to indicate the start of the port number (http://somehost:port/blah), and if that string can't be converted to a number, the uri is invalid. With a URN this isn't the case (urn:ietf:rfc:2648). Unfortunately, the failure isn't communicated upwards.

      axutil_uri_parse_string() should be modified to accept both urls and urns, and the API updated appropriately (when called on a urn, axutil_uri_get_port() should return an error value, etc.). a new function to determine if the uri is a urn or url should be added, and new functions to access the urn specific components added.

      In my particular case, the incorrect parsing is hampering interaction with an ebXML registry/repository, which indicates operation status in the form of a uri attribute in the returned structure.

      Attachments

        Activity

          People

            Unassigned Unassigned
            silverhalide Elliot Silver
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 48h
                48h
                Remaining:
                Remaining Estimate - 48h
                48h
                Logged:
                Time Spent - Not Specified
                Not Specified