Commit Graph

128 Commits

Author SHA1 Message Date
Alexey Lapshin
a262e879d1 fix(esp_http_server): fix GCC 14 analyzer warnings 2024-09-08 13:53:52 +07:00
snake-4
8bade3bf2c
fix(http_server): Don't require LWIP_NETIF_LOOPBACK for Linux target 2024-08-21 04:25:10 +02:00
Mahavir Jain
940578f9fe Merge branch 'contrib/github_pr_14196' into 'master'
fix(esp_http_server): prevent concurrent access to socket used in async http requests (GitHub PR)

Closes IDFGH-13263 and IDFGH-13053

See merge request espressif/esp-idf!32267
2024-07-26 14:09:25 +08:00
Friedolin Gröger
4a7f371056 fix(esp_http_server): prevent concurrent access to socket used in async http requests 2024-07-16 10:46:50 +02:00
wanlei
3cf069c7d8 feat(esp32c61): disable unsupported build test 2024-07-16 16:06:19 +08:00
Yogesh Mantri
586207207f change(esp_netif): Add Non-Fatal errtype to indicate lower layer medium failure
UDP application sends packet using esp_netif, underlying transport such
as Wi-Fi may drop the packet due to higher load. New error code
represent transient, non-fatal packet drop error. udp application may
use such errtype, for example to rate limit.
2024-06-11 09:20:49 +02:00
Harshit Malpani
61a3466941
fix: Fix spelling mistakes in esp_http_server.h 2024-05-29 18:30:00 +05:30
Maciej Małecki
e40b1402e4
feat(http_server): add 413 Payload Too Large response
While not useful for the HTTP parser itself, this is very useful for
memory-limited consumers of the HTTP server API.

Signed-off-by: Harshit Malpani <harshit.malpani@espressif.com>
2024-05-29 18:30:00 +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
ef5e4ddee8
fix: Add warning to enable LWIP_NETIF_LOOPBACK to use control socket API
Closes https://github.com/espressif/esp-idf/issues/13659
2024-05-07 10:39:12 +05:30
Aditya Patwardhan
d444ff58ec Merge branch 'contrib/github_pr_13462' into 'master'
fix: Allocate HTTP header space for async httpd_req_t objects (GitHub PR)

Closes IDFGH-12445

See merge request espressif/esp-idf!29868
2024-04-22 14:17:21 +08:00
laokaiyao
65b1fd33d3 ci(esp32c5mp): disable the unsupported tests 2024-04-07 12:13:29 +08:00
Mooneer Salem
f799e99909 fix: Allocate HTTP header space for async httpd_req_t objects
This resolves bug #13430 by allocating a new copy of resp_hdrs
when calling httpd_req_async_handler_begin(), thus preventing
invalid access to memory from async tasks.
2024-03-27 00:50:29 -07:00
Jakob Hasse
4d629be602 refactor(linux): Unified libbsd handling
* Users can now use libbsd string.h and sys/cdefs.h functionality
  (e.g., strlcpy, containerof) on Linux by just including
  string.h or sys/cdefs.h. In other words, the includes are the same
  on the Linux target as well as on chips targets (ESP32, etc.).
* libbsd linking is done by the linux component (belongs to common
  components) now instead of handling it separately in each component
2024-03-08 12:26:54 +08:00
Marius Vikhammer
1f7c666701 ci(test_apps): limit dependencies for misc test_apps
Only pull in direct dependencies for the test apps, reducing build time
as well making it possible for CI to determine if the test should run or not
when dependencies are changed.
2024-02-18 16:01:58 +08:00
Harshit Malpani
1d81af367d
feat: support HTTP_ANY method in esp_http_server
Closes https://github.com/espressif/esp-idf/issues/12794
2024-01-15 14:32:06 +05:30
Harshit Malpani
ae71e1ddb9
fix(esp_http_server): Add support for custom HTTP status codes
Closes https://github.com/espressif/esp-idf/issues/12399
2023-12-20 16:59:38 +05:30
Ivan Grokhotkov
49f289f893
fix(esp_http_server): fix build for IDF_TARGET=linux on macOS 2023-12-19 13:28:59 +01:00
Alon Bar-Lev
af79fe0495
change(components/esp_http_server): add task_caps configuration
The HTTP server is not a critical component, it would be nice if we can
control the task caps by using configuration.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Signed-off-by: Harshit Malpani <harshit.malpani@espressif.com>
2023-12-13 12:26:59 +05:30
Ivan Grokhotkov
88fa79fcc7
feat(unity): upgrade to 2.6.0-RC1 2023-11-28 20:22:02 +01:00
Harshit Malpani
692e1a9e61
feat: ECDSA peripheral while performing http connection with mutual auth 2023-09-08 12:22:41 +05:30
Armando
7dbd3f6909 feat(ci): Enable p4 example, test_apps and unit tests CI build 2023-08-24 12:51:19 +08:00
Chip Weinberger
3824eba04d
feat(httpd): add support for asynchronous request handling
This commit adds support for handling multiple requests simultaneously by introducing two new functions: `httpd_req_async_handler_begin()` and `httpd_req_async_handler_complete()`. These functions allow creating an asynchronous copy of a request that can be used on a separate thread and marking the asynchronous request as completed, respectively.

Additionally, a new flag `for_async_req` has been added to the `httpd_sess_t` struct to indicate if a socket is being used for an asynchronous request and should not be purged from the LRU cache.

An example have been added to demonstrate the usage of these new functions.

Closes https://github.com/espressif/esp-idf/issues/10594

Signed-off-by: Harshit Malpani <harshit.malpani@espressif.com>
2023-05-19 10:05:42 +05:30
David Cermak
b2af4d9689 lwip/linux: Add lwip support for networking component under linux
linux/lwip: Wrap some IO posix functions
* to workaourd the FreeRTOS EINTR issue (when building without lwip)
* to correctly choose the sub-system based on fd (when building with
lwip) -- passing control to either linux/system or to lwip
This commit also addapts tapio-if to provide DHCP client by default and
configurable settings for static IP
2023-05-05 05:03:39 +00:00
Harshit Malpani
7c68b67295
esp_http_server: Update to support build for Linux 2023-03-31 16:42:05 +05:30
Marius Vikhammer
0be8e03907 ci: update test apps to use run_all_single_board_cases 2023-03-10 14:27:09 +08:00
David Cermak
5f6cb31105 lwip: Support IPv6 only mode 2023-02-27 08:53:34 +01:00
Omar Chebib
5e5343d429 TWDT: Use the new TWDT Kconfig options in the examples and tests 2023-02-17 11:22:25 +08:00
Harshit Malpani
e1e46e5dae
esp_http_server: fix return values for httpd_socket_send() and httpd_socket_recv() APIs
Closes https://github.com/espressif/esp-idf/issues/10658
2023-01-31 11:29:49 +05:30
Cao Sen Miao
94120b82c2 esp32h2: add build test 2023-01-17 10:29:04 +08:00
Mahavir Jain
035c2e5799
esp_http(s)_server: remove "Wno-format" cflag and fix formatting errors 2022-12-21 14:14:04 +05:30
Harshit Malpani
0885d8542d
esp_http_server: Added support for esp_events 2022-12-19 17:33:37 +05:30
Harshit Malpani
89a56392e3
esp_http_server: fix wrong context pointer in httpd_req_cleanup function
Added example which fails without the fix

Closes https://github.com/espressif/esp-idf/issues/10265
2022-12-16 14:40:37 +05:30
Nathan Phillips
2d047f5439 Fix type of cast 2022-12-08 10:51:16 +00:00
Mahavir Jain
79216c657e
esp_http_server: modify error print for clarifying internal socket usage
Closes https://github.com/espressif/esp-idf/issues/10108
Closes IDFGH-8663
2022-11-15 20:46:35 +05:30
Mahavir Jain
34f3287323
esp_http_server: fix default control port for HTTPS configuration
For simultaneous HTTP and HTTPS server use-case, default configurations
set same control socket port and hence one of the server initialization
fails with an error "error in creating control socket".

This commit modifies default initializers to use different control
socket port in HTTP vs HTTPS server case.

Closes https://github.com/espressif/esp-idf/issues/10160
Closes IDFGH-8719
2022-11-15 20:46:35 +05:30
Mahavir Jain
a6b9304a50 Merge branch 'feature/add_keep_alive_for_httpserver' into 'master'
esp_http_server: Add support to enable TCP keepalive config

Closes IDFGH-8379

See merge request espressif/esp-idf!20842
2022-11-01 17:13:41 +08:00
Song Ruo Jing
be0fdfa176 soc: Add a soc cap, SOC_CLK_RC_FAST_D256_SUPPORTED, for whether the target has the RC_FAST_D256 clock 2022-11-01 11:23:26 +08:00
yuanjianmin
e05d61d075 esp_http_server: Add support to enable TCP keepalive config
Closes https://github.com/espressif/esp-idf/issues/9848
2022-10-31 14:37:05 +08:00
Mahavir Jain
fffc72d307
esp_http_server: fix few coverity warnings
- unreachable code
- uninitialized values
- missing return checks
2022-10-10 15:35:43 +05:30
Harshit Malpani
a3fd6d1070
esp_http_server: Add linger in httpd_config_t
Closes: https://github.com/espressif/esp-idf/issues/9514
2022-09-22 10:11:50 +05:30
Laukik Hase
463b02eeec
http_server: Increment active socket count for SSL session
- The callback `open_fn` is used for creating a new SSL session
  with httpd_sess_new.
- If the call fails, the active socket count (httpd_data->hd_sd_active_count)
  is not incremented. But, httpd_sess_delete is called, which decrements the
  count, resulting in a negative value for several failed session creations
  in a row.

Closes https://github.com/espressif/esp-idf/issues/9683
2022-09-07 10:27:22 +05:30
Harshit Malpani
cae004a815 ci: Migrate esp_http_server unit tests from unit-test-app to component-test-app 2022-08-25 03:43:46 +00:00
Ivan Grokhotkov
401c10ecfb build system: re-add -Wno-format as private flag for some components 2022-08-03 16:42:47 +04:00
yuanjm
b9b1a7aba8 fix(websocket): Support handler deal with PING and CLOSE frame
Closes https://github.com/espressif/esp-idf/issues/8803
2022-06-08 16:16:57 +08:00
Harshit Malpani
73fc12cdcd esp_http_server: Remove http_server.h Header file 2022-05-13 16:00:17 +05:30
Harshit Malpani
1bb03e17a7 esp_http_server: update httpd_queue_work() API to use semaphore
Closes: https://github.com/espressif/esp-idf/issues/8440
2022-05-09 18:00:05 +05:30
Yuan Jian Min
293830a8ee fix(server): Fix websocket server not support handle multiple connections when client send CLOSE frame 2022-05-06 09:18:05 +08:00
Shubham Kulkarni
a4afeed209 esp_http_server: Minor updates in error messages
idf_http_server_test/client.py: Update test script with new error message
2022-03-09 14:43:10 +05:30