Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-10-09 | Dismiss some todos | Richard Walters | |
2020-10-07 | (Rust) Uri::is_path_absolute: match against whole path, not first segment | Richard Walters | |
2020-10-07 | (Rust) combine match with if/else in Uri::validate_ipv4_address | Richard Walters | |
2020-10-07 | (Rust) dismiss some todos | Richard Walters | |
2020-10-07 | (Rust) Add Uri::path_as_string convenience function | Richard Walters | |
2020-10-07 | (Rust) Make setting scheme fallible by checking for invalid characters | Richard Walters | |
2020-10-07 | Finish initial port of library to Rust | Richard Walters | |
2020-10-07 | Fix misspelling | Richard Walters | |
2020-10-06 | Work in progress porting to Rust | Richard Walters | |
2020-10-06 | Work in progress porting implementation to Rust | Richard Walters | |
2020-10-05 | Add tests for parsing hosts ending in dot | Richard Walters | |
2020-09-27 | No need to use try_from() when setting parts of a URI | Richard Walters | |
2020-09-27 | Finish porting unit tests to Rust | Richard Walters | |
2020-09-27 | Work in progress porting test cases to Rust, implemented by uriparse | Richard Walters | |
2019-12-02 | Support first > last for range constructor of CharacterSet | Richard Walters | |
2019-11-09 | StringExtensions moved from SystemAbstractions to its own library | Richard Walters | |
2019-05-10 | Remove useless increments | Richard Walters | |
Thank you to @ya-ming for pointing this out! | |||
2019-03-28 | Percent-encode '+' in the query portion | Richard Walters | |
2019-01-06 | Uri: remove old TODO comment no longer applicable | Richard Walters | |
2018-10-24 | Uri: fix bugs in copying and comparing URIs with query/fragment parts | Richard Walters | |
Copying query or fragment needs to copy the "hasQuery" and "hasFragment" flags. Comparing URIs should make use of "hasQuery" and "hasFragment" to properly compare URIs that might not have query and/or fragment parts. | |||
2018-10-24 | Uri: fix bug in percent-encoding of character codes 0x80-0xff | Richard Walters | |
Can't treat characters using "char" type because it's signed. | |||
2018-09-05 | Fix compiler warnings found by compiling on Mac | Richard Walters | |
2018-08-24 | remove redundant 'struct' from pimpl pattern | Richard Walters | |
2018-08-09 | use SystemAbstractions::ToInteger to convert strings to integers | Richard Walters | |
2018-08-09 | Refactoring: make application of rule of zero/five consistent | Richard Walters | |
2018-08-05 | Use SystemAbstractions::ToLower instead of doing it ourselves | Richard Walters | |
2018-07-23 | Add copy constructor and assignment operator | Richard Walters | |
2018-07-04 | Fix bug in IPv6Address validation | Richard Walters | |
A trailing group which is definitely not an IPv4Address needs to be counted. Detect this as the state being IN_GROUP_NOT_IPV4 after the end of the string. | |||
2018-07-04 | Refactoring | Richard Walters | |
Assign names to states in the IPv6Address validation routine | |||
2018-07-04 | Fix bugs in IPv6 address parsing | Richard Walters | |
* Multiple colons should not be accepted in state 4. * After parsing a digit group and encountering a colon, we need allow either another colon or the beginning of either another group or an IPv4 address. Add state 5 to handle this. | |||
2018-07-04 | Normalize IPv6 addresses when generating URI strings | Richard Walters | |
2018-07-04 | Percent-encode if necessary any elements when generating strings | Richard Walters | |
2018-07-04 | Fix requirements | Richard Walters | |
Query and fragment may be empty but present in a URI. Handle this in the same way that port is handled: include a flag for each of query and fragment, to allow an empty but present query/fragment. | |||
2018-07-04 | Add capability of setting other elements | Richard Walters | |
* userinfo * port (hasPort) * path * fragment Also include these element when generating string from URI. | |||
2018-07-04 | Add GenerateString (incomplete) | Richard Walters | |
Add methods to set scheme, host, and query elements. Add ability to generate URI strings out of scheme, host, and query elements. This does not yet support userinfo, port, or fragment elements. | |||
2018-07-04 | Fix bug in truncated host elements | Richard Walters | |
For example, "[::1", where the square bracket at the end is missing. Handle truncated host element by checking the state we end up in after the entire string is parsed. Some states represent interal elements of a host name or address, and so if we're still in those states and run out of input characters, the input string was cut off early. | |||
2018-07-04 | Fix bug in parsing out IPv6 and IPvFuture addresses | Richard Walters | |
Don't include the square brackets in the parsed out host string; they are only there for delimiting them inside of an overall URI string. | |||
2018-07-04 | Validate IPv6 addresses | Richard Walters | |
* Add ValidateIpv6Address. * Add ValidateIpv4Address (since an IPv6 address is allowed to contain an IPv4 address for compatibility) * Add ValidateOctet (used by ValidateIpv4Address). | |||
2018-07-04 | Refactoring | Richard Walters | |
* Extract CanNavigatePathUpOneLevel from NormalizePath. * Add comments to explain what's going on elsewhere in NormalizePath. | |||
2018-07-04 | Add missing "ok" return values in extracted methods | Richard Walters | |
2018-07-04 | Give names to states in host/port parsing state machine | Richard Walters | |
2018-07-04 | Refactoring | Richard Walters | |
* Extract methods to copy various elements of one URI from another. * Push NormalizePath implementation into a private method. * Simplify and consolidate checks for absolute paths. * Extract methods out of individual steps of ParseFromString. | |||
2018-07-03 | Document parts of the path normalization process | Richard Walters | |
Add comments that link parts of the code back to lines of the pseudocode in the RFC, to make the code easier to understand. | |||
2018-07-03 | Complete rewrite of NormalizePath | Richard Walters | |
The former algorithm was based on the pseuocode from the RFC, which is hard to follow, more suitable when the path is in a single string, not a sequence of segments. The new algorithm uses two flags: * isAbsolute - recognize that if the path starts out as an absolute path, it needs to stay that way. * atDirectoryLevel - recognize that if we encounter a "." or "..", then it will be reduced by simply discarding it or going back/up one stop, but then we will be in a "directory" context, meaning that should we end the path at this point, there needs to be an empty-string segment to mark that the end of the path is reaching into a directory, not just referring to the directory. | |||
2018-07-02 | Add reference resolution and attempt to fix path normalization | Richard Walters | |
Path normalization is hideously broken for now. | |||
2018-07-02 | Allow default move semantics | Richard Walters | |
2018-07-02 | Recognize special case of absolute URI with empty path | Richard Walters | |
Such a URI should be considered equivalent to a path of "/" because in both cases the path is an absolute path. | |||
2018-07-02 | Add more path normalization tests and fix a bug in it | Richard Walters | |
For normalization "step 2C", if the output path was empty, we don't want to pop the end of it off. | |||
2018-07-02 | Add capability to compare Uri objects. | Richard Walters | |
* Code the neat example in section 6.2.2 of the RFC. * Add equality/inequality operators for Uri. | |||
2018-07-02 | Add NormalizePath method | Richard Walters | |