Commit graph

25 commits

Author SHA1 Message Date
Chinmay 38b1c93764 esp_http_server : Bugfix in parsing of empty header values
This MR is intended to fix incorrect parsing of HTTP requests when empty header values are present.

The issue is was due to asymmetric behavior of `http_parser` library, which in case of:

    non-empty header values : invokes callbacks with the pointer to the start of a value
    empty header values : invokes callbacks with pointer to the start of next header or section

Since HTTP server relies on this pointer (along with length of the value) to locate the end of a value, and replace the line terminators (CRLFs) with null characters, the second case needed to be handled correctly.

Closes IDFGH-1539

Closes https://github.com/espressif/esp-idf/issues/3803
2019-09-09 08:21:13 +00:00
Anurag Kar c68390f922 File Server Example : Check longer than allowed filenames when converting from URIs to filepaths
This change prevents buffer overflows in case of really long file paths.

Other changes:
* Remove query (?) and fragment (#) component from URI when converting to file path
* /index.html and favicon.ico can be overridden by files with same name and path in SPIFFS
* README.md updated
2019-05-06 10:46:35 +05:30
Anurag Kar 3be2b430d1 HTTP Server : Added example tests for verifying parser behavior on arbitrary HTTP terminations (LF, CRLF, etc.) 2019-04-01 15:39:15 +05:30
Anurag Kar b26f6662f1 http_server examples : Updated tests and examples to demonstrate usage of httpd_register_err_handler() and accommodate for changes in default error handler behavior 2019-02-25 09:13:39 +00:00
Roland Dobai 37126d3451 Correct Kconfigs according to the coding style 2019-01-29 13:37:01 +01:00
Anurag Kar c2fb45b6ef http file_server : Fix README of example 2019-01-15 12:58:55 +05:30
Anurag Kar 72d2d2845d http_file_server : fix kconfig of example 2019-01-15 07:27:22 +05:30
Anurag Kar 5127aa1976 HTTP Server : File server example added
This example demonstrates the capability of wildcard URI matching
allowing for a full fledged file server to be created using esp_http_server.
2019-01-14 12:03:54 +05:30
Roland Dobai 4ca2b149e5 examples, tools: Fix Python3 deprecation warning for the imp module 2018-12-20 12:44:33 +01:00
Roland Dobai 57c54f96f1 examples: Fix Python coding style 2018-12-06 09:34:33 +01:00
Anurag Kar 639502ed5d esp_http_server example tests : updated advanced_tests as per API changes 2018-11-19 04:00:21 +00:00
Anurag Kar 8340ed3ddb HTTP Server Examples : Include header esp_http_server.h 2018-10-24 17:32:43 +05:30
Anurag Kar 6a3fa5c180 HTTP Server Examples : Updated examples to manually return 408 and 500 errors 2018-10-17 17:36:50 +05:30
Anurag Kar 8be9e0946f HTTP Server : Default content type of response should be HTTPD_TYPE_TEXT
Closes https://github.com/espressif/esp-idf/issues/2527
2018-10-08 18:12:15 +05:30
Roland Dobai 975688b97f examples: Use flushed print to see logs on the CI server 2018-09-25 08:05:56 +02:00
Roland Dobai 17b7959de9 Examples: Add Python 2&3 support 2018-09-25 08:05:56 +02:00
Renz Christian Bagaporo d9939cedd9 cmake: make main a component again 2018-09-11 09:44:12 +08:00
Angus Gratton cff2ef695a Merge branch 'master' into feature/cmake 2018-09-06 20:23:04 +08:00
Anurag Kar 3ed5af18fd HTTP Server Example Tests : Fix various issues
* Fixed regex constraints for parsing IP and other parameters from monitor log.
* httplib connection timeouts set
* Redundent tests (commented out earlier) have been removed from advanced_tests. These tests are already run during unit testing.
2018-09-05 23:29:07 +05:30
Angus Gratton 5fbfd20f10 Merge branch 'master' into feature/cmake 2018-08-30 18:52:31 +08:00
Anurag Kar e2b4ad8f6e Temporary : Disable leak tests 2018-08-30 03:01:59 +05:30
Anurag Kar e2da1d9905 http_server : Fix and enable example tests
This introduces the following changes in the example test scripts :
* Dependency on python requests library removed in favor of httplib
* Bug fixed in the logic responsible for receiving and processing http chunked responses
* Default timeouts increased Note : Due to connectivity issues (between runner host and DUT) in the runner environment, some of the advanced_tests are being ignored. These tests are intended for verifying the expected limits of the http_server capabilities, and implement sending and receiving of large HTTP packets and malformed requests, running multiple parallel sessions, etc. It is advised that all these tests be run locally, when making changes or adding new features to this component.
2018-08-30 03:01:59 +05:30
Angus Gratton 5689e446dc cmake: Add missing example CMakeLists.txt files, CI check all examples have both 2018-08-29 20:22:55 +08:00
He Yin Ling 2b7dd2ef9a ci: temp modify http server tests to get CI pass:
1. change the default value of WIFI password
2. disable simple and advanced test cases
2018-07-27 23:38:20 +08:00
Anurg Kar 656bef7bb7 Http Server : Add a simple light weight HTTP Server Component.
Also add examples, docs and test apps for the HTTP Server.
2018-07-20 15:49:17 +05:30