All the things I've found out on the way, that need retouching
- consider replacing Result with T and throw instead.
- http: rework HttpClient API (so it's becoming dead-easy to be used within proxy code)
- http.client: HttpClient to support fastcgi
- http.cluster: HealthMonitor to support fastcgi
-
unit tests: adapt to API changes
- raft::InetTransport (<- LocalTransport)
- http1::Connection (<- LocalTransport)
- HttpClient (<- local HttpServer)
-
??? rewrite some
throw
's toResult<>
|std::error_code
returns -
eliminate DataChainListener and/or greatly simplify DataChain
-
eliminate need of EndPointWriter via DataChain
-
??? eliminate TcpUtil
-
HttpListener: onMessageContent(HugeBuffer&&) instead
-
extend FCGI connector to tweak maxKeepAlive (just like in HTTP/1)
- make sure the keepalive-timeout is fired correctly
- test cancellation (due to io) and fire (due to timeout).
- make sure the keepalive-timeout is fired correctly
-
http2: use wireshark to get binary expected data for the Parser & Generator tests
-
easy enablement of FCGI in all http examples.
- SSL: SslConnector: add optional support to also allow plaintext connections
- SSL: ability to setup a certificate password challenge callback
- SSL: support different session cache stores (memory, memcached, ...)
- SSL: support enabling/disabling SSL renegotiation - http://www.thc.org/thc-ssl-dos/
- SSL: ensure we can reconfigure cipher priorities to counter BEAST attack - http://www.g-loaded.eu/2011/09/27/mod_gnutls-rc4-cipher-beast/
- http: ensure
TCP_CORK
/TCP_NOPUSH
is set/cleared implicitely in plaintext vs interactive http responses
- test: test each public API is well tested
- raise 504 (gateway timeout) if backend page load takes too long and no result has been sent to the client yet (close connection directly otherwise).
- stdout/stderr to point to log stream/handler directly,
- add
x0d --dump-du
(dump flow's def-use chain) - resource management (at least for
max_core_size
) must be evaluated after privilege dropping, in case there is some, or they're lost.
- core: Process (QA: prefer
posix_spawn()
overvfork()
to exec child processes) - net: improved EndPoint timeout handling (distinguish between read/write/keepalive timeouts)
-
HttpTransport::onInterestFailure()
=>(factory || connector)->report(this, error);
- http: chunked request trailer support & unit test
- doc: doxygen: how to document a group of functions all at once (or, how to copydoc)
- test: call completed() before contentLength is satisfied in non-chunked mode (shall be transport generic)
- test: attempt to write more data than contentLength in non-chunked mode (shall be transport generic)
- logging: improve (debug) logging facility
- BUG: testing: EXPECTxx failures do also increment success count?
- test: ensure
HttpStatus::NoResponse
actually terminates the transport instant - redesigned error handling
- LinuxScheduler (
epoll
,signalfd
,eventfd
) - FCGI transport
- SSL: basic
SslConnector
&SslEndPoint
- SSL: finish SNI support
- SSL: NPN support
- SSL: ALPN support
- SSL: SslConnector to select ConnectionFactory based on NPN/ALPN
- UdpConnector
- improve timeout management (ideally testable)
-
InetEndPoint::wantFill()
to honorTCP_DEFER_ACCEPT
- test: write full tests for HttpFileHandler using MockTransport