Commit Graph

130 Commits

Author SHA1 Message Date
hrushikesh.bhosale
52cd89698e feat(esp_http_client): Added http method REPORT
Added support http REPORT method and tested it using local server.
Added test case for REPOPRT method in esp_http_client_example.c
The URL(httpbin.org) does not support for /report endpoint.

Closes https://github.com/espressif/esp-idf/issues/14147
2024-07-23 16:43:33 +05:30
fbp2m
adb307da29
fix: fixed allocating if_name in client context multiple times
Do not allocate client->if_name twice in esp_http_client_init().

Signed-off-by: Harshit Malpani <harshit.malpani@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/13945
2024-06-19 11:39:56 +05:30
Mahavir Jain
a3dff04cf3 Merge branch 'bugfix/fix_resetting_redirect_counter' into 'master'
fix: reset redirect counter for using same handler

Closes IDFGH-12636 and IDFGH-12667

See merge request espressif/esp-idf!30395
2024-05-10 12:02:36 +08:00
Harshit Malpani
1ac2ebbeb9
fix: Add config option to set timeout for posting events
Event posting to the event loop should not hinder the working of
HTTP Client or HTTP Server. This commit add a config option to set
the timeout for posting the events to the loop.

Closes https://github.com/espressif/esp-idf/issues/13641
2024-05-08 11:41:05 +05:30
Harshit Malpani
1987f055c9
fix: reset redirect counter for using same handler
Closes https://github.com/espressif/esp-idf/issues/13633
2024-05-07 10:27:23 +05:30
Harshit Malpani
2814b5a330
Revert "fix(esp_http_client): Call event_handler after header value is received"
This reverts commit 04ac8e43db.

When `http_on_header_event` is called, event_handler is invoked and
then the current header key and header value are freed. In the previous
approach, `http_on_header_event` was called from `http_on_header_value`,
but it lead to an issue where if the value is received in multiple chunks,
then the current header key and value were freed and thus header was not
processed correctly which might result in connection issues. Calling
`http_on_heaher_event` from `http_on_header_field` ensures that the current
header field and value are processed properly

Fixes https://github.com/espressif/esp-idf/issues/13497
Fixes https://github.com/espressif/esp-idf/issues/13097
2024-04-01 13:41:47 +05:30
Harshit Malpani
bc901c0a3a
fix(esp_http_client): Fix http digest auth without qop
Closes https://github.com/espressif/esp-idf/issues/12962
2024-01-23 12:22:35 +05:30
jim
14a9e01931 esp_http_client: Fix reset errno to 0 before call esp_transport_read
Closes https://github.com/espressif/esp-idf/issues/9020
2023-12-22 10:54:40 +08:00
Harshit Malpani
803ad150cf
feat(esp_http_client): SHA256 support in digest auth
Added support for using SHA256 algorithm while calculating
digest auth in HTTP client connection

Closes https://github.com/espressif/esp-idf/issues/12383
2023-12-15 11:32:57 +05:30
Shinichi Tanaka
c5cb67d49c
fix(esp_http_client): correct the typo in the error log string
Corrected the module name in the error log.
("https_ota" to "http_client")
2023-12-14 09:21:24 +09:00
David Čermák
096d1ce1bb Merge branch 'feat/http_client_session_ticket' into 'master'
feat(http_client): Restore TLS session and custom transport

See merge request espressif/esp-idf!26059
2023-12-01 15:11:20 +08:00
David Cermak
96069eef3b feat(http_client): Add support for using custom tcp_transport 2023-11-29 20:48:40 +01:00
David Cermak
7e22a13afe feat(http_client): Add support for TLS session tickets 2023-11-29 20:48:35 +01:00
Harshit Malpani
61d4775027
fix(esp_http_client): Fix esp_http_client async mode
Closes https://github.com/espressif/esp-idf/issues/12358
2023-11-06 13:13:15 +05:30
Harshit Malpani
27681a5073
fix(esp-tls): Use TLS 1.2 and TLS 1.3 simultaneously
This commit fixes the issue with TLS 1.2 connection when TLS 1.3 is
enabled in config.
2023-10-23 16:23:10 +05:30
Harshit Malpani
04ac8e43db
fix(esp_http_client): Call event_handler after header value is received 2023-09-25 12:27:54 +05:30
Harshit Malpani
96a8316e71
feat(esp_http_client): Add API to set auth data
This new API can be used to set the authentication data in the client context
when the auth data is received in the custom header

Closes: https://github.com/espressif/esp-idf/pull/12131
2023-09-25 12:27:53 +05:30
Mahavir Jain
2b3418b4a0 Merge branch 'feature/use_ecdsa_perph_while_mutual_auth' into 'master'
feat: ECDSA peripheral while performing http connection with mutual auth

Closes IDF-7390

See merge request espressif/esp-idf!25052
2023-09-11 19:41:21 +08:00
Mahavir Jain
bd0eac77b2 Merge branch 'feature/add_support_for_ds_peripheral_on_ota' into 'master'
feat(esp_http_client): Added support for OTA using ds peripheral for TLS

See merge request espressif/esp-idf!25713
2023-09-11 16:36:58 +08:00
Harshit Malpani
692e1a9e61
feat: ECDSA peripheral while performing http connection with mutual auth 2023-09-08 12:22:41 +05:30
David Cermak
7c012e3fe1 fix(http_client): Set common tcp config to both TCP and SSL transport
Foundation transport contained TCP properties for both TCP and SSL
transport, so it was enough to set the TCP connection properties
(keepalive, interface binding) to one transport only. After merging
5778a7c7 we have separate TCP properties for these transports and need
to set the same for both.
This commit also fixes unnecessary allocation of 1 more byte for if_name

Closes https://github.com/espressif/esp-protocols/issues/322
2023-09-07 08:33:44 +02:00
Aditya Patwardhan
4be9bc4e2e feat(esp_http_client): Added support for OTA using ds peripheral for TLS 2023-09-04 09:00:03 +05:30
Harshit Malpani
8d95e45c05
fix: nitpick in esp_http_client 2023-08-02 13:48:14 +05:30
Kenneth Furge
90be9cc3e8
Set state to HTTP_STATE_REQ_COMPLETE_HEADER prior to calling the
HTTP_EVENT_HEADERS_SENT callback to allow streaming of PUT data
in the callback.
2023-05-17 14:06:51 +05:30
Mahavir Jain
bdf8f1c382 Merge branch 'contrib/github_pr_10715' into 'master'
Add user_data accessor and mutator to esp_http_client (GitHub PR)

Closes IDFGH-9337 and IDFGH-9221

See merge request espressif/esp-idf!22751
2023-03-21 14:07:31 +08:00
Andrew Clink
82cdcc5de5
Add user_data accessor and mutator to esp_http_client
Closes: https://github.com/espressif/esp-idf/pull/10715
2023-03-16 12:36:16 +05:30
Harshit Malpani
674fd8feb8
esp_http_client: Add support for esp_events 2023-03-15 11:48:11 +05:30
harshal.patil
32e78b71f3 http_client: fixed looping caused when disable_auto_redirect enabled
Closes https://github.com/espressif/esp-idf/issues/10629
2023-02-23 14:11:58 +05:30
Harshit Malpani
6e92edd848
esp_http_client: fix debug log from LOGI to LOGD
Closes https://github.com/espressif/esp-idf/issues/10313
2023-01-11 15:55:52 +05:30
Harshit Malpani
68ded2c350
esp_http_client: fix -Werror-format compile errors for linux target 2023-01-04 11:17:28 +05:30
Harshit Malpani
1c77e13d35
esp_http_client: Update to support build for linux 2023-01-04 11:17:28 +05:30
Mahavir Jain
bbc5914e63
esp_http_client: remove "Wno-format" cflag and fix formatting errors 2022-12-21 14:14:04 +05:30
Harshit Malpani
6de9e42122
esp_http_client: Add feature to cancel an HTTP request
Closes: https://github.com/espressif/esp-idf/issues/9892
2022-12-02 11:36:28 +05:30
Aditya Patwardhan
ba43063314 esp_http_client: Add option to use secure_element
Closes https://github.com/espressif/esp-idf/issues/10071
2022-11-17 14:43:35 +05:30
harshal.patil
5feb4696be fix: esp_http_client fix behaviour when disable_auto_redirect is enabled 2022-10-27 14:04:54 +05:30
Mahavir Jain
67e080471f
esp_http_client: free cached data in case connection gets closed for redirection
In case of `esp_http_client_read` based workflow, we cache data that is received
during fetch header stage. In case, there is URL redirection and we have to close
the connection on URL, port change then we must discard earlier cached data.

Closes AUD-4158
2022-10-20 12:45:06 +05:30
Aditya Patwardhan
4904d57fd9 esp_http_client: Added support to set server common name. 2022-09-13 05:31:43 +00:00
David Cermak
5c383d7b73 esp_netif/lwip: Fix deps cycles to "lwip -> esp_netif -> phy-drivers"
Fix dependency tree so that lwip doesn't depend on any specific network
interface component.
Network interface drivers shall depend on esp_netif.
esp_netif shall depend on lwip (but not on any specific interface
driver) -- it optionally depends on vfs and esp_eth (need ethernet
header for L2/bridge mode)
2022-07-20 14:59:07 +02:00
Laukik Hase
7115881a97
esp_http_client/esp_https_ota: Removed errno checks
- Returned -ESP_ERR_HTTP_EAGAIN for timeout errors from
  esp_http_client whenever tcp transport layer returns
  connection timeout
- Removed redundant conditional statements as required

Co-authored-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
2022-05-31 15:04:21 +05:30
Harshit Malpani
437d90c408 esp_http_client: Fix redirect by resetting auth_header before parsing 2022-04-25 05:16:49 +00:00
Shubham Kulkarni
b4456bff97 esp_http_client: Add comment for clearing location field in esp_http_client_prepare 2022-03-24 06:23:17 +00:00
Nicklas Frahm
660ca96e23 esp_http_client: fix redirect by resetting location before parsing
Closes #8563.

Signed-off-by: Nicklas Frahm <nicklas.frahm@gmail.com>
2022-03-24 06:23:17 +00:00
Shubham Kulkarni
ec6f222625 esp_http_client: Add new status code 303 and 308 2022-03-21 04:27:43 +00:00
Shubham Kulkarni
18fa343161 esp_http_client: Cache received data in http_on_body callback.
This change fixes issue with data loss when multiple body chunks are
received after calling esp_http_client_fetch_headers.
2022-03-01 15:41:36 +00:00
Laukik Hase
ca84d2d6c9 esp_http_client: Added event for HTTP redirect
- Allows users to manually intercept and process the HTTP redirection
 when disable_auto_redirect (from the esp_http_client handle) is set to true

Closes https://github.com/espressif/esp-idf/issues/8029
2022-01-12 11:40:32 +05:30
Chen Wu
c10683f493 http: Fix parsing invalid url cause to crash
Reason:
For example, if an url is lack of leading 'http:' by mistake, it causes to http_parser_parse_url() cannot parse http host item,
and then pass the null host pointer to _get_host_header(), crash happens.

Fix:
http added null pointer check now.

Closes https://jira.espressif.com:8443/browse/ESPAT-953
2021-12-02 14:15:43 +08:00
xutao
10377ce2ff esp_http_client: add a get HTTP client session errno api for esp_http_client 2021-11-24 17:23:09 +08:00
Shubham Kulkarni
5bf49e1cd6 esp_http_client: Support handling larger content lengths
Closes https://github.com/espressif/esp-idf/issues/6580
2021-10-29 18:14:22 +08:00
yuanjm
9f875b8db5 esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request
Closes https://github.com/espressif/esp-idf/issues/7777
2021-10-28 19:53:12 +08:00
Harshit Malpani
2085e4eb92 esp_http_client: apply generic error check macros 2021-10-20 14:40:32 +05:30