Timothy Flynn
b54a520b69
LibRequests+RequestServer: Add an error code for bad content encoding
...
This error is set by curl when, e.g., a gzipped response body has an
invalid gzip encoding.
2025-04-20 16:50:37 +02:00
Timothy Flynn
e0c4801e0f
RequestServer: Ignore CURLE_RECV_ERROR in some cases
...
The HTTPS server used by WPT will close TLS connections without sending
a "close notify" alert. For responses that did not have a Content-Length
header, curl treats this as an error.
2025-04-20 16:50:37 +02:00
stasoid
beb11f0447
RequestServer: Compile on Windows
2025-04-10 19:03:00 -06:00
Aliaksandr Kalenik
db8c443392
Everywhere: Make TransportSocket non-movable
...
Instead of wrapping all non-movable members of TransportSocket in OwnPtr
to keep it movable, make TransportSocket itself non-movable and wrap it
in OwnPtr.
2025-04-09 15:27:52 +02:00
rmg-x
f39d14fa8a
RequestServer: Remove check for square brackets in websocket_connect
...
This is no longer necessary since commit:
6480e1a3fe
2025-04-08 09:13:33 +02:00
rmg-x
27c19c02d2
RequestServer: Remove check for square brackets in host before resolving
...
This is no longer needed since `IPv6Address::from_string` supports
square brackets. After the update to curl, `CURLOPT_RESOLVE` now
supports replacing IPv6 hosts as well.
2025-04-05 14:26:09 -04:00
Timothy Flynn
0de017df9b
LibRequests: Move NetworkError stringification to LibRequests
...
Let's also rename the file to NetworkError.h while we're here. No need
to have "Enum" in the name.
2025-04-02 08:52:45 -04:00
Timothy Flynn
cf69f52d53
LibIPC+Everywhere: Always pass ownership of transferred data to clients
...
This has been a longstanding ergonomic issue with our IPC compiler. Non-
trivial types were previously passed by const&. So if we wanted to avoid
expensive copies, we would have to const_cast and move the data.
We now pass ownership of all transferred data to the client subclasses.
This allows us to remove const_cast from these methods, and allows us to
avoid some trivial expensive copies that we didn't bother to const_cast.
2025-03-09 11:14:20 -04:00
Andrew Kaster
00c9031304
RequestServer: Remove dead code from ConnectionFromClient
2025-03-06 14:43:02 -05:00
Luke Wilde
209b10e53e
RequestServer: Retrieve timing info from curl and pipe it to LibWeb
...
This timing info will be used to create a PerformanceResourceTiming
entry.
2025-03-06 09:00:53 -07:00
devgianlu
85d46a71d9
LibDNS: Ensure non-blocking socket is used for TCP connections
2025-02-22 18:39:58 +01:00
Andrew Kaster
06faa7b160
LibWebSocket+RequestServer: Resolve WebSocket hosts using our resolver
CI / Lagom (true, NO_FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, FUZZ, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (false, NO_FUZZ, ubuntu-24.04, Linux, GNU) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Build Dev Container Image / build (push) Has been cancelled
2025-02-20 15:04:50 -07:00
Andrew Kaster
1809ab2743
RequestServer: Enable the new WebSocketImplCurl backend for WebSockets
2025-02-20 15:04:50 -07:00
Shannon Booth
2823ac92d0
RequestServer: Do not check for invalid URL starting a request
...
Now that LibIPC ensures that an invalid URL is not passed through,
we do not need to check the validity of the URL here.
2025-02-19 08:01:35 -05:00
devgianlu
42a18a4a91
RequestServer: Use default certificate for DNS over TLS
2025-02-18 15:46:44 +01:00
devgianlu
24d3da64e5
LibWebSocket: Support specifying root certificate path
2025-02-17 19:52:43 +01:00
David Hewitt
6b661a91c6
RequestServer: Send empty headers in requests
2025-02-17 13:43:16 +01:00
rmg-x
41c6f93aa8
RequestServer: Remove IPV6 bracket notation on host before resolving
...
Previously, we were passing in the serialized value which included
square brackets but that isn't a valid IPV6 address.
2025-02-17 12:02:41 +01:00
stasoid
3e46cb9067
LibWebView+ImageDecoder+RequestServer+WebContent: Add init_transport
2025-02-12 22:32:13 -07:00
rmg-x
ec481aa08a
LibDNS+RequestServer: Fix UAF in lookup() by changing Span -> Vector
...
Co-authored-by: Ali Mohammad Pur <ali.mpfard@gmail.com>
2025-02-11 07:24:33 +01:00
rmg-x
17c0d4469c
RequestServer: Check for empty list of IP addresses in DNS result
...
Before, if something went wrong with DNS lookup and there were unrelated
records (i.e. not A or AAAA) then we would still attempt to build a
resolve list. This resulted in curl errors related to the option itself
and displayed as "unknown network error" to the user.
2025-02-03 00:14:22 +01:00
Andrew Kaster
91161d77e0
RequestServer: Remove unused content length check for received data
2025-01-23 21:35:58 +01:00
Andreas Kling
7cd6ea6f33
RequestServer: Clean up the CURLM "multi handle" when client drops
...
Otherwise we may leak all kinds of things inside CURL.
2024-12-25 19:14:45 +01:00
Shannon Booth
0fa54c2327
LibURL+LibWeb: Make URL::serialize return a String
...
Simplifying a bunch of uneeded error handling around the place.
2024-12-04 16:34:13 +00:00
rmg-x
c490118b6c
RequestServer: Free curl string lists and check result before setting
...
Previously, we leaked the `curl_slist`s on every request. This also
validates the pointer we get from `curl_slist_append` before setting the
option.
Also, use the `set_option` helper for CURLOPT_RESOLVE as it will print
when there is an error.
2024-12-01 11:32:45 +01:00
rmg-x
32358df13e
RequestServer: Remove unused global "g_dns_cache"
...
`curl_slist_append` copies the string so we don't need to keep it around
ourselves.
2024-12-01 11:32:45 +01:00
rmg-x
9b8987e34e
RequestServer: Use existing type for buffered UDP socket
2024-12-01 11:32:45 +01:00
Sam Atkins
900c131178
LibURL: Make URL::serialized_host() infallible
...
This can no longer fail, so update the return type to match.
This makes a few more methods now unable to return errors, but one thing
at a time. 😅
2024-11-30 12:07:39 +01:00
Ali Mohammad Pur
ff311c1560
RequestServer+LibDNS: Don't .await() the DNS lookup promise
...
...and make sure it will eventually complete (or fail) by adding a
timeout retry sequence.
Fixes an issue where RequestServer would stick around after exit,
waiting for piled up DNS requests for a long time.
2024-11-25 11:46:35 +01:00
Pavel Shliak
442629064b
LibCore: Remove deprecated ElapsedTimer::elapsed()
...
This follows FIXME in the code.
2024-11-23 19:20:03 +01:00
Pavel Shliak
001df24935
LibWebSocket: Clean up #include directives
...
This change aims to improve the speed of incremental builds.
2024-11-21 14:08:33 +01:00
Ali Mohammad Pur
7d1291b9f0
RequestServer: Implement the ResolveOnly EnsureConnection level
2024-11-20 21:37:58 +01:00
Ali Mohammad Pur
7e20f4726f
LibDNS+LibWeb+Ladybird+RequestServer: Let there be DNS over TLS
...
This commit adds our own DNS resolver, with the aim of implementing DoT
(and eventually DoH, maybe even DNSSEC etc.)
2024-11-20 21:37:58 +01:00
rmg-x
8d511b2f7b
RequestServer: Clear "Content-Type" header when one isn't provided
...
libcurl will automatically set the Content-Type header when using the
CURLOPT_POSTFIELDS option to "application/x-www-form-urlencoded".
See: https://curl.se/libcurl/c/CURLOPT_POSTFIELDS.html
The following WPT cases now pass (8 tests):
http://wpt.live/xhr/send-blob-with-no-mime-type.html
2024-11-18 02:03:11 +01:00
Timothy Flynn
22e0eeada2
Everywhere: Hoist the Services folder to the top-level
2024-11-10 12:50:45 +01:00