summaryrefslogtreecommitdiffstats
path: root/core/io/http_client.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary code and add some error explanationsqarmin2019-07-011-2/+0
|
* Some code changed with Clang-Tidyqarmin2019-06-261-1/+1
|
* Fix a random SSL crash I saw once.Hein-Pieter van Braam-Stewart2019-06-061-0/+6
| | | | | I don't know why this happened, I was debugging another issue. This should take care of it though.
* Fix typos with codespellRémi Verschelde2019-05-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using codespell 1.15.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear doubleclick leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
* Fix HTTPClient keep alive with chunked encoding.Fabio Alessandrelli2019-02-201-2/+28
| | | | | | | | | | | | | | | We need to consume the trailer part and final CRLF after last chunk as per RFC 7230 section 4.1: ``` chunked-body = *chunk last-chunk trailer-part CRLF ``` We do not return the trailer part, just consume it allowing following requests to work as expected when using keep alive.
* HTTPClient read until EOF fixesFabio Alessandrelli2019-02-201-39/+16
|
* Fix keep-alive without header in HTTP clientFabio Alessandrelli2019-02-161-7/+6
|
* Update copyright statements to 2019Rémi Verschelde2019-01-011-2/+2
| | | | Happy new year to the wonderful Godot community!
* Fix warnings about unhandled enum value in switch [-Wswitch]Rémi Verschelde2018-09-271-1/+3
| | | | | | | | | | | Fixes GCC 5 warnings of the form: core/io/http_client.cpp:288:9: warning: enumeration value 'STATUS_SSL_HANDSHAKE_ERROR' not handled in switch [-Wswitch] core/io/marshalls.cpp:806:9: warning: enumeration value 'AABB' not handled in switch [-Wswitch] Those can be trivial cases where adding a default fallback is the solution, or more complex issues/hidden bugs where missed values are actually meant to be handled.
* Add checks for clean disconnect in HTTP/TCP/SSL.Fabio Alessandrelli2018-09-211-0/+12
| | | | | Half-open TCP connection can, of course, only be detected by writing the socket, or waiting for TCP timeout.
* Fix HTTPClient _get_http_data bug after #21976.Fabio Alessandrelli2018-09-151-2/+2
|
* Merge pull request #21976 from Faless/http_client_eof_fixRémi Verschelde2018-09-131-9/+22
|\ | | | | Fix non chunked HTTP reading till eof.
| * Fix non chunked HTTP reading till eof.Fabio Alessandrelli2018-09-121-9/+22
| |
* | Merge pull request #21982 from luzpaz/misc-typosRémi Verschelde2018-09-131-1/+1
|\ \ | | | | | | Misc. typos
| * | Misc. typosluz.paz2018-09-121-1/+1
| | | | | | | | | Found via `codespell -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"`
* | | Unify StreamPeerTCP/TCP_Server with NetSocket APIFabio Alessandrelli2018-09-121-1/+1
| |/ |/|
* | Make core/ includes absolute, remove subfolders from include pathRémi Verschelde2018-09-121-2/+3
|/ | | | | | This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
* Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam2018-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
* HTTP client now uses non blocking handshakeFabio Alessandrelli2018-07-161-5/+31
|
* Fix CORS problems due to added headers on JS targetGagaPete2018-07-041-2/+31
| | | | | | | | | | | Before this change, missing User-Agent and Accept headers were automatically added on all platforms. Setting the User-Agent header forces the browser to do a CORS preflight (see 1) which fails if the HTTP endpoint is not configured appropriate. It's not neccesary to set either header as the browser sets them and so this commit disables that functionality on the JS target. 1: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests
* Allow body-up-to-EOF HTTP responsesPedro J. Estébanez2018-05-221-15/+49
| | | | | | Implements the same heuristic as Curl (and web browsers): if no `Content-Length`, no `Connection: keep-alive` and no chunked transfer encoding, assume th rest of the data until EOF is the body, gracefully setting the HTTP client back to the disconnected state. Theoretically, this is not compliant with HTTP 1.1, by which `keep-alive` is the default, but in practice, an explicit header is sent by servers.
* Revert "Unify http- and percent- encode/decode"Pedro J. Estébanez2018-04-121-3/+3
| | | | This reverts commit b76ee30917c63211ac9e94a21bebbddf518d169f.
* Enhance HTTPClient.query_string_from_dict()Pedro J. Estébanez2018-03-271-1/+21
|
* Unify http- and percent- encode/decodePedro J. Estébanez2018-03-271-1/+1
| | | | | There was a percent-prefixed version, which was exposed, and a http-prefixed version which was not (only to GDNative). This commit keeps the percent-prefixed versions, but with the http-prefixed implementations.
* Fix wrong SSL handshakePedro J. Estébanez2018-03-041-1/+1
| | | | The name of the remote host is passed to mbed TLS in all cases so the client hello message is correctly formed.
* Bind many more properties to scriptsBojidar Marinov2018-01-121-0/+3
| | | | | | | Notable potentially breaking changes: - PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL - Some properties were renamed, and sometimes even shadowed by new ones - New getter methods (some virtual) were added
* Add missing copyright headers and fix formattingRémi Verschelde2018-01-051-0/+1
| | | | | | Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
* Update copyright statements to 2018Rémi Verschelde2018-01-011-2/+2
| | | | Happy new year to the wonderful Godot community!
* Fix javascript build error and improve #14604Fabio Alessandrelli2017-12-151-2/+2
|
* HTTP cleanup & better defaultsmhilbrunner2017-12-141-62/+66
|
* HTTPClient: Add PATCH method and missing HTTP status codesmhilbrunner2017-12-121-2/+17
|
* Implement HTTPClient in HTML5 platformLeon Krause2017-11-131-66/+69
| | | | | | | | | | | Limitations: - Subject to same-origin policy - No persistent connection (but simulated for compatibility) - No blocking mode - No StreamPeer access - No chunked responses - Cannot disable host verification
* Remove HTTPClient::send_body_text and ::send_body_dataLeon Krause2017-10-261-12/+0
| | | | | These were never implemented, the request* methods provide parameters to send body data as part of the client's requests.
* Fixed a bug where ssl would force validation even though you told it not to.Nathan Warden2017-10-031-1/+1
|
* Use HTTPS URL for Godot's website in the headersRémi Verschelde2017-08-271-1/+1
|
* ClassDB: Provide the enum name of integer constantsIgnacio Etcheverry2017-08-201-70/+70
|
* Removes type information from method bindsIgnacio Etcheverry2017-08-101-5/+5
|
* Don't append standard ports to the request header.Martin Capitanio2017-06-131-2/+12
| | | | | | | Breaks the SSL communication with some servers, do the same that the other curl, wget, firefox & co clients do. Fixes #9146
* Add "Godot Engine contributors" copyright lineRémi Verschelde2017-04-081-0/+1
|
* A Whole New World (clang-format edition)Rémi Verschelde2017-03-051-333/+304
| | | | | | | | | | | | | | | | | | | | | | | | I can show you the code Pretty, with proper whitespace Tell me, coder, now when did You last write readable code? I can open your eyes Make you see your bad indent Force you to respect the style The core devs agreed upon A whole new world A new fantastic code format A de facto standard With some sugar Enforced with clang-format A whole new world A dazzling style we all dreamed of And when we read it through It's crystal clear That now we're in a whole new world of code
* Various fixes detected using PVS-Studio static analyzer.Thaer Razeq2017-02-281-1/+1
| | | | | | | - Add FIXME tags comments to some unfixed potential bugs - Remove some checks (always false: unsigned never < 0) - Fix some if statements based on reviews. - Bunch of missing `else` statements
* Rename the _MD macro to D_METHODHein-Pieter van Braam2017-02-131-25/+25
| | | | | | This new name also makes its purpose a little clearer This is a step towards fixing #56
* Merge pull request #7581 from Faless/v6_wild_bindRémi Verschelde2017-02-121-8/+1
|\ | | | | TCP/UDP listen bind to address and bugfixes
| * Remove set_ip_type from network classes (no longer needed)Fabio Alessandrelli2017-01-231-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | - TCP: - `listen` bind to wildcard "*" -> dual stack socket - `listen` bind to address -> socket from address type - `connect` -> resolve using best protocol (UNSPEC), socket from address type - UDP: - `listen` bind to wildcard "*" -> dual stack socket - `listen` bind to address -> socket from address type - `put_packet`/`put_var` -> resolve using TYPE_ANY (UNSPEC), socket from address type (to change socket type you must first call `close` it)
* | HTTPClient properly handle partial data in non-blocking modeFabio Alessandrelli2017-02-071-2/+4
|/ | | | | Use block to send DVector::Write out of scope in HTTPClient::read_response_body_chunk()
* removed duplicated functions in class hierarchy that were bound more than onceJuan Linietsky2017-01-141-6/+6
| | | | added a check to detect this case in the future
* Type renames:Juan Linietsky2017-01-111-15/+15
| | | | | | | | | | | | Matrix32 -> Transform2D Matrix3 -> Basis AABB -> Rect3 RawArray -> PoolByteArray IntArray -> PoolIntArray FloatArray -> PoolFloatArray Vector2Array -> PoolVector2Array Vector3Array -> PoolVector3Array ColorArray -> PoolColorArray
* Memory pool vectors (DVector) have been enormously simplified in code, and ↵Juan Linietsky2017-01-071-3/+3
| | | | renamed to PoolVector
* ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to ↵Juan Linietsky2017-01-021-26/+26
| | | | | | | | Variant. All usages of "type" to refer to classes were renamed to "class" ClassDB has been exposed to GDScript. OBJ_TYPE() macro is now GDCLASS()
* Merge pull request #7271 from Faless/ipv6_cleanupRémi Verschelde2017-01-021-4/+9
|\ | | | | Fixes and improvementes for IPv6 implementation.