summaryrefslogtreecommitdiff
path: root/src/supplemental/http
Commit message (Collapse)AuthorAge
* fixes #1735 websocket should send, and wait for, WS_CLOSE frames on shutdownGarrett D'Amore2023-12-17
| | | | fixes #1733 deadlock in websocket listener close
* Skip URI parameters when serving a directory (http_server)Robert Bielik2023-08-23
|
* fixes#1611 http_sconn_error() in http_server.c; use after freeGarrett D'Amore2023-04-19
|
* Fixes for some security complaints.Garrett D'Amore2022-12-31
| | | | | | | None of these changes are actual security bugs, but GitHub's scanner reports false positives at Critical severity for them. (There are a number of complaints from that scanner, many of which we do not necessarily agree with.)
* Fix out-of-bounds error in http_uri_canonify(). (#1595)Manuel Saraiva2022-05-31
|
* Replace nni_aio_prov_set_extra with nni_aio_prov_set_data.Garrett D'Amore2021-12-31
| | | | | | This takes one less parameter, and is simpler. It will let us reclaim the aio_prov_extra data space as well, so that we can use it for other purposes.
* Use static initialization for lists and mutexes.Garrett D'Amore2021-12-05
| | | | | | This eliminates some run-time initialization, moving it to compile time. Additional follow up work will expand on this to simplify initialization and reduce the need for certain locks.
* fixes #1393 Use after free in http (#1395)Evgeny Ermakov2021-01-03
|
* Fix compilation warnings (#1397)Evgeny Ermakov2021-01-02
|
* fixes #1372 nni_reap could be smallerGarrett D'Amore2020-12-19
|
* fixes #1313 support deferred nng_aio destructionGarrett D'Amore2020-12-12
|
* fixes #1358 nni_strtou64 and nni_strtox64 could be replaced with strtoullGarrett D'Amore2020-11-23
|
* Centralize the scheme handling for HTTP schemes.Garrett D'Amore2020-11-17
|
* fixes #1200 Shouldn't nng_http_server_stop be synchronous?Garrett D'Amore2020-11-17
|
* fixes #1355 wss4 and wss6 don't work as they shouldGarrett D'Amore2020-11-17
| | | | This also properly reenables the wssfile_test.
* fixes #1071 tran_chkopt can be cleaned upGarrett D'Amore2020-11-15
| | | | | | | | | | | | | | | | | This is a sweeping cleanup of the transport logic around options, and also harmonizes the names used when setting or getting options. Additionally, legacy methods are now moved into a separate file and can be elided via CMake or a preprocessor define. Fundamentally, the ability to set to transport options via the socket is deprecated; there are numerous problems with this and my earlier approaches to deal with this have been somewhat misguided. Further these approaches will not work with future protocol work that is planned (were some options need to be negotiated with peers at the time of connection establishment.) Documentation has been updated to reflect this. The test suites still make rather broad use of the older APIs, and will be converted later.
* fixes #1087 CMakeLists structural improvements desiredGarrett D'Amore2020-11-14
| | | | | This doesn't modularize all the tests yet, but it goes a long way in the right direction.
* fixes #1337 nni aio user data could be removedGarrett D'Amore2020-11-10
|
* Fix minor incorrect comment.Garrett D'Amore2020-11-10
|
* fixes #1279 Add support for ws4:// and ws6:// style websocket urlsGarrett D'Amore2020-08-08
| | | | fixes #1277 FreeBSD errors due to bad v4 vs. v6 assumptions
* fixes #844 WebSocket wildcard host errorsGarrett D'Amore2020-07-27
| | | | | | | | | | fixes #1224 wss fails on IPV6 address This fixes bugs and inconsistencies in the way addresses are handled for HTTP (and consequently websocket). The Host: address line needs to look at numeric IPs and treat wildcards as if they are not specified, and needs to understand the IPv6 address format using brackets (e.g. [::1]:80).
* fixes #1005 TLS 1.3 supportGarrett D'Amore2020-02-23
| | | | | | | | This introduces support for an external wolfSSL plugin, and generally creates the framework for pluggable TLS implementations. The wolfSSL engine is provided via an external module (git submodule), available either under a GPLv3 license or a commercial license.
* Fix typos in commentsEvgeny Ermakov2020-02-13
|
* Add possibility to explicitly set a tree handler as exclusive (#1158)Robert Bielik2020-01-27
| | | | - Default tree handler behavior is now non-exclusive - Add 'longest uri first' ordering for http handlers
* Fix HTTP server root URI handling (#1140)Robert Bielik2020-01-18
| | | - Fixes #751
* fixes #1094 Consider in-lining task and aioGarrett D'Amore2020-01-08
| | | | | This only does it for rep, but it also has changes that should increase the overall test coverage for the REP protocol
* Fixup a few codacy complaints.Garrett D'Amore2020-01-01
|
* fixes #1075 WebSocket heap use after freeGarrett D'Amore2019-12-30
| | | | | This also introduces a new atomic boolean type, so we can use that to trigger whether we've added the HTTP handler or not.
* Add http server method for getting addressRobert Bielik2019-12-29
|
* fixes #975 nng_http_res_alloc does not init status code properlyGarrett D'Amore2019-08-09
|
* Fix for http chunked transferJanjaap Bos2019-05-17
|
* set txn->client in nni_http_transactJanjaap Bos2019-04-24
| | | | Otherwise connections are not closed in reaper.
* fixes #907 WebSocket ephemeral port cannot be reusedGarrett D'Amore2019-03-13
|
* fixes #905 Small typo. error in HTTP msgGarrett D'Amore2019-03-09
|
* fixes #869 nng_http_handler_set_tree fails match if path is /Garrett D'Amore2019-02-17
|
* fixes #821 http_server crash when using url without hostnameGarrett D'Amore2019-02-17
|
* fixes #872 create unified nng_stream APIGarrett D'Amore2019-02-16
| | | | | | | | | This is a major change, and includes changes to use a polymorphic stream API for all transports. There have been related bugs fixed along the way. Additionally the man pages have changed. The old non-polymorphic APIs are removed now. This is a breaking change, but the old APIs were never part of any released public API.
* fixes #825 TCP public API should use generic setopt/getoptGarrett D'Amore2018-12-31
| | | | | | | | | | | | This changes much of the internal API for TCP option handling, and includes hooks for some of this in various consumers. Note that the consumers still need to have additional work done to complete them, which will be part of providing public "raw" TLS and WebSocket APIs. We would also like to finish addressing the call sites of nni_tcp_listener_start() that assume the sockaddr is modified -- it would be superior to use the NNG_OPT_LOCADDR option. Thaat will be addressed in a follow up PR.
* move all public headers to include/nng/ folderGregor Burger2018-11-22
| | | | | | | | | | This change makes embedding nng + nggpp (or other projects depending on nng) in cmake easier. The header files are moved to a separate include directory. This also makes installation of the headers easier, and allows clearer identification of private vs public heade files. Some additional cleanups were performed by @gedamore, but the main credit for this change belongs with @gregorburger.
* fixes #456 TLS configuration object holdGarrett D'Amore2018-11-05
| | | | fixes #776 Configuration of mbedTLS should warn about license
* fixes #577 target library dependencies should be publicGarrett D'Amore2018-11-05
| | | | | | | | | | | This is a significant refactor of the library configuration. We use the modern package configuration helper, with a template script that also does the find_package dance for any of our dependencies. We also have restructured the code so that most protocols and transports have their configuration isolated to their own CMakeLists file, reducing the size of the global CMakeLists file.
* fixes #682 Support for Chunked Transfer CodingGarrett D'Amore2018-11-02
| | | | | | | | | | | | | | | | This is the client side only, although the work is structured to support server applications. The chunked API is for now private, although the intent to is to make it public for applications who really want to use it. Note that chunked transfer encoding puts data through extra copies. First it copies through the buffering area (because I have to be able to extract variable length strings from inside the data stream), and then again to reassemble the chunks into a single unified object. We do assume that the user wants the entire thing as a single object. This means that using this to pull unbounded data will just silently consume all memory. Use caution!
* eliminate double check for index.html if index.html existsQXSoftware2018-10-15
|
* fixes #745 HTTP server redirect handlerGarrett D'Amore2018-10-07
|
* fixes #738 http server needs a way to collect request entity dataGarrett D'Amore2018-09-29
|
* fixes #717 need nng_http_req_reset and nng_http_res_resetGarrett D'Amore2018-09-12
| | | | | fixes #718 http_transact is still not right fixes #719 calculation of buffer size is incorrect in http
* fixes #714 Incomplete reset of RES/REQ breaks http_transactGarrett D'Amore2018-09-10
|
* fixes #681 HTTP convenience GET method desired...Garrett D'Amore2018-08-30
| | | | | This adds a couple of new methods, and related documentation and test cases.
* fixes #232 Add cancellation support to HTTP handler APIGarrett D'Amore2018-08-20
| | | | | Well, actually, #506 fixed that, but this fixes the commentary that indicates otherwise in the code.
* fixes #664 aio cancellation could be betterGarrett D'Amore2018-08-20
| | | | | | | | | This changes the signature of the aio cancellation routines to take the argument for cancellation directly, so we do not need to lookup the argument using the nni_aio_get_prov_data. We should probably consider eliminating nni_aio_get_prov_data, and co, and changing the prov_extra to reflect prov_data. Later.