mongoose: submodule, v4.1

add mongoose as a submodule.
rgw: rebase mongoose prototype

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: support for mongoose keepalive

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: configurable mongoose port

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: add SERVER_PORT to mongoose environment

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: update code to handle mongoose v4.1

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: support http/1.0 keep-alive response (mongoose)

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: refactor request handling processing

Remove all duplicate code for different handlers.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: more flexible frotnend handler config

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: clean up front end configuration

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: clean up shutdown signaling

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: allow multiple frontends of the same framework

it is possible to set up mongoose on multiple ports, e.g.,

  rgw frontends = mongoose:80, mongoose:8080

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: rework framework configuration

The framework config code is now more generic and ready for multiple
config options. Different frameworks are comma separated and each
framework's config list is separated by space. Each config value is in
the key[=value] format. E.g.,

rgw framework = fastcgi, mongoose port=8080

Fastcgi socket configurables can now be set via this config line (either
socket_path, or socket_host + socket_port), e.g.,

rgw framework = fastcgi socket_path=/var/run/radosgw/rgw.sock

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: Look at correct header about headers for CORS

The CORS standard dictates that preflight requests are made with the
Access-Control-Request-Headers header containing the headers of the
author request. The Access-Control-Allow-Headers header is sent in the
response.

The present code looks for Access-Control-Allow-Headers in request, so
fix it to look at Access-Control-Request-Headers instead.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
rgw: Clarify naming of case-change functions

It is not clear that the lowercase_http_attr & uppercase_http_attr
functions replace dashes with underscores. Rename them to match the
pattern established by the camelcase_dash_http_attr function in
preperation for more case-change functions as needed by later fixes.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
rgw: Fix CORS allow-headers validation

This fix is needed because Ceph presently validates CORS headers in a
case-sensitive manner. Keeps a local cache of lowercased allowed headers
to avoid converting the allowed headers to lowercase each time.

CORS 6.2.6: If any of the header field-names is not a ASCII
case-insensitive match for any of the values in list of headers do not
set any additional headers and terminate this set of steps.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
rgw: fix memory leak

Remove frontend object on shutdown.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
mongoose: update submodule

switched to a different source repository, added .gitignore

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
osd: remove remaining instances of raid4 pool types (never implemented)

Signed-off-by: Sage Weil <sage@inktank.com>
doc/release-notes: v0.67.5

Signed-off-by: Sage Weil <sage@inktank.com>