Commits
- Commit:
8b2b06b5122892c74e4dd58772be73ea2fd2933b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: rewrite remove_dot_segments to be clearer
the previous version was straight out RFC3986 (more or less, it had a
bug I didn't spot), but it's ugly and extremely long. Rewrite it to be
somewhat inspired by canonpath (from kern_pledge.c) and way simpler.
There are some small differences in how UNIX paths and URLs paths are
canonized (in UNIX path you don't care too much of a trailing '/', in
URLs you do.)
The new code is more clear and passes all the tests in RFC3986, so I'm
calling it a win.
- Commit:
cb7621af57ac2abad12fa61893d00199daebdd29
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: fix remove_dot_segments algorithm
i've misread the description in the RFC; we should copy up to, but not
including, the next '/' at the end and manually inject some '/' in some
other cases.
- Commit:
a9eac73439353c3222a01235919b74a0ba6dc483
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: fix remove_dot_segments: should copy until (including) "/"
- Commit:
30398ec1cb13001ad23b1cb8c6d3e2e93796da2f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: fix typo: should check the first two characters, not three
- Commit:
5cb6cd4da7c71adf2c773f9cc29f8ad523e8fbfa
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: fix path check
path should *start* with "/" to enter that branch, not be exactly "/".
- Commit:
a655e85afdbbaa364ec9f8ca1236b18846d0775b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: fix logic in iri_unparse
make sure path starts with "/" only when there's an authority part, not
when it's not there!
- Commit:
172e0e1e7163e57039bb99df7eeb6dab77d843c2
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: drop extraneous cpfields(IH_QUERY)
- Commit:
997b9cd04af3eb9e27e6ad8422d915af04902a7a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: set some flags as defined only when actually copying
- Commit:
d59fad58f6a3ce0c11ee5792e21e0ce73a059dd5
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: draft iri_unparse
- Commit:
245a86c365a3d921a0ac2157809060c52925d619
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: avoid unpleasant infinite loop in remove_dot_segments
need to copy until the *next* path segment, otherwise we loop
indefinitely if *p == '/'.
- Commit:
f5bc8482f4f41abd20e767dd613fc323713f3820
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: catch remove_dot_segments/mergepath failures and set errno
- Commit:
871b5bb7caa2a9144d00f5f4711c18aa861bce88
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: first try at remove_dot_segments and mergepath
- Commit:
51762770ad906c93ca83830aee8d17f8acba8c29
- From:
- Omar Polo <op@omarpolo.com>
- Date:
iri: lowercase scheme and host (part of URI normalization)
- Commit:
36f94f06b08270ab5d4465aa61ae025c98e24c2c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
use the new iri parser in ir_select_gemini
While here also add some error checking.
- Commit:
46102ea3153564d16a0ab489cbecb67025e29aea
- From:
- Omar Polo <op@omarpolo.com>
- Date:
use the new iri parser in parse.y for proxy validation