Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • next protected
  • UI-EvenMoreTweaks
  • merge/materials_featurette protected
  • merge/webrtc protected
  • darl/linux-sh-installer
  • xenhat/maint/bolt
  • xenhat/features/cinematic-mode-new
  • screensquare
  • ssestuff
  • spdlog
  • 7.1.7.2486-beta
  • 7.1.4.2442-beta
  • 7.1.4.2413-beta
  • 7.1.3.2338-beta
  • 7.1.3.2332-beta
  • 7.1.2.2304-beta
  • 7.1.1.2251-beta
  • 7.0.1.2244-beta
  • 7.0.1.2240-beta
  • 7.0.1.2230-beta
  • 7.0.1.2206-beta
22 results

viewer

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Nat Goodspeed authored
    The LLURI::buildHTTP() overloads that take an LLSD 'path' accept 'undefined',
    LLSD::String and (LLSD::Array of LLSD::String). A sequence of path components
    passed in an Array is constructed into a slash-separated path. There are unit
    tests in lluri_test.cpp to exercise that case.
    To my amazement, there were NO unit tests covering the case of an LLSD::String
    path. The code for that case escaped and appended the entire passed string.
    While that might be fine for a 'path' consisting of a single undecorated path
    component, the available documentation does not forbid one from passing a path
    containing slashes as well. But this had the dubious effect of replacing every
    slash with %2F.
    In particular, decomposing a URL string with one LLURI instance and
    constructing another like it using LLURI::buildHTTP() was not symmetrical.
    Having consulted with Richard, I made the string-path logic a bit more nuanced:
    - The passed path string is split on slashes. Every path component is
      individually escaped, then recombined with slashes into the final path.
    - Duplicate slashes are eliminated.
    - The presence or absence of a trailing slash in the original path string is
      carefully respected.
    Now that we've nailed down how it ought to behave -- added unit tests to
    ensure that it DOES behave that way!!
    7db0cb75
    History