* Keep track of how many times we couldn't do keep-alive from the backend.  This
  happens if the backend server is doing chunked encoding or doesn't provide a
  content length.

* Allow option to say O_EXCL for PUTs

* Investigate/fix error with "no mapping for fd" when a socket abruptly closes
  during the connect process.  (Run ab against perlbal, then Ctrl+C it.)

* Investigate when BackendHTTP fails on a call to get_res_headers?

* Fix shutdown graceful to close off persistent clients and bored backends (reproxy too?)
  (This is done already?)

* Document the 'reproxy bored' queue [old...new] self cleaning on the old side, but
  uses the new side when it needs a connection

* Lots of work can be done to reduce system calls:
  - coalesce epoll_ctl calls
  - make socket by hand without IO::Socket::INET
  - don't cork twice on reproxy & send

* Support dictionary (scratch hash) per service
  - can configure keys to send to backends
  - backends can set keys in dictionary (so they propogate to other backends, etc)

* Allow configurable response code that means "backend dead; replay request"

* Plugins to say what HTTP requests are known idempotent and re-playable in case
  of errors.  Also option to say that all GETs or urls matching certain rules
  are idempotent

* rule service selector

* way for management commands to hold state (absorbing all future commands)
  .. for defining rules, etc

* let rules map to pools (selectors), or set things like idempotent

* disabling services that have no listen configured anyway --- can they still be selected to?

* Proxying non-HTTP services
  -- hard bit:  SMTP/etc needs original client IP.  ignore that and document that deficiency?

* configurable backend monitors
  -- "every 15 seconds telnet to this port number and say 'are you okay'?  they must reply "YES" or "NO""
     -- mysql specific inetd plugins to check replication/etc?

* more global & per node/service/pool bytes in/out

* security for those unaware: make reproxy-file and reproxy-url
  optional things you must explicitly enable on a service

* make the response-code-tracking-per-ipport a plugin, not on by default:
    my $ref = ($NodeStats{$self->{ipport}}->{responsecodes} ||= []);
    ....


******* SSL TO-DO

option: SSL_key_file
option: SSL_cert_file
option: SSL_cipher_list

example setup docs, and min IO::Socket::SSL version

example docs on how to generate a self-signed crt/key pair:

    openssl req -x509 -newkey rs:1024 -keyout test.pem -out test.pem \
         -days 365 -nodes

X-SSL headers to clean?

speaking regular HTTP to SSL socket --- error?  seems to correctly fail.



