mirror of
https://github.com/opnsense/src.git
synced 2026-06-04 06:15:33 -04:00
Fragments are reserved for client-side processing, see
https://www.rfc-editor.org/rfc/rfc9110.html#section-7.1
Also, some servers don't like to receive HTTP requests with fragments.
```
$ fetch 'https://dropbox.com/a/b'
fetch: https://dropbox.com/a/b: Not Found
$ fetch 'https://dropbox.com/a/b#'
fetch: https://dropbox.com/a/b#: Bad Request
```
This is a real-world scenario, where some download link from dropbox
(eventually) redirects to an URL with a fragment:
```
$ fetch -v 'https://www.dropbox.com/sh/<some>/<thing>?dl=1' 2>&1 | grep requesting
requesting https://www.dropbox.com/sh/<some>/<thing>?dl=1
requesting https://www.dropbox.com/scl/fo/<foo>/<bar>?rlkey=<baz>&dl=1
requesting https://<boo>.dl.dropboxusercontent.com/zip_download_get/<some-long-strig>#
```
See how the last redirect ends with a `#`.
Currently, libfetch includes the ending fragment and makes it impossible
to download the file.
Differential Revision: https://reviews.freebsd.org/D46318
MFC after: 2 weeks
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| common.c | ||
| common.h | ||
| fetch.3 | ||
| fetch.c | ||
| fetch.h | ||
| file.c | ||
| ftp.c | ||
| ftp.errors | ||
| http.c | ||
| http.errors | ||
| Makefile | ||
| Makefile.depend | ||
| Makefile.depend.options | ||