Medium-long term roadmap - 2015/10/13

Legend: '+' = done, '-' = todo, '*' = done except doc

1.7 or later :
  - return-html code xxx [ file "xxx" | text "xxx" ] if <acl>

  - return-raw  [ file "xxx" | text "xxx" ] if <acl>

  - add the ability to only dump response errors to more easily detect
    anomalies without being polluted with attacks in requests.

  - have multi-criteria analysers which subscribe to req flags, rsp flags, and
    stream interface changes. This would result in a single analyser to wait
    for the end of data transfer in HTTP.

  - support for time-ordered priority queues with ability to add an offset
    based on request matching. Each session will have one ebtree node to be
    attached to whatever queue the session is waiting in.

  - add a flag in logs to indicate keep-alive requests ?

  - make it possible to condition a timeout on an ACL (dynamic timeouts)

  - forwardfor/originalto except with IPv6

  - remove lots of remaining Alert() calls or ensure that they forward to
    send_log() after the fork.

  - tcp-request session

  - tcp-request session expect-proxy {L4|L5} if ...

  - wait on resource (time, mem, CPU, socket, server's conn, server's rate, ...)

  - bandwidth limits

  - buddy servers to build defined lists of failovers. Detect loops during
    the config check.

          server XXX buddy YYY
          server YYY    # may replace XXX when XXX fails

  - spare servers : servers which are used in LB only when a minimum farm
    weight threshold is not satisfied anymore. Useful for inter-site LB with
    local pref by default.

  - add support for event-triggered epoll, and maybe change all events handling
    to pass through an event cache to handle temporarily disabled events.

  - evaluate the changes required for multi-process+shared mem or multi-thread
    +thread-local+fast locking.

  - ability to decide whether to drain or kill sessions when putting a server
    to maintenance mode => requires a per-server session list and the change
    above.

Old, maybe obsolete points :
  - clarify licence by adding a 'MODULE_LICENCE("GPL")' or something equivalent.

  - 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
    demand)

  - implement support for event-triggerred epoll()

  - verify if it would be worth implementing an epoll_ctl_batch() for Linux

  - option minservers XXX : activates some spare servers when active servers
    are insufficient

  - initcwnd parameter for bind sockets : needed in kernel first

  - have a callback function which would be called after a server is selected,
    for header post-processing. That would be mainly used to remove then add
    the server's name or cookie in a header so that the server knows it.

Unsorted :
  - outgoing log load-balancing (round-robin or hash among multiple servers)

  - internal socket for "server XXX frontend:name"

  - HTTP/2.0

  - XML inspection (content-switching for SOAP requests)

  - random cookie generator

  - fastcgi to servers

  - hot config reload

  - RAM-based cache for small files

  - RHI - BGP

  - telnet/SSH cli

  - dynamic memory allocation

  - dynamic weights based on check response headers and traffic response time

  - various kernel-level acceleration (multi-accept, ssplice, epoll2...)
