[Calypso] [PATCH 01/15] add custom headers via config file

Guido G√ľnther agx at sigxcpu.org
Sat Apr 9 15:46:52 PDT 2016


On Sat, Apr 09, 2016 at 07:15:12PM +0000, Jelmer Vernooij wrote:
> From: chrysn <chrysn at fsfe.org>
> 
> this is required when using calypso with a web application on a
> different server

LGTM and passes our minimal caldav-tester suite.
 -- Guido

> ---
>  calypso/__init__.py |  3 +++
>  calypso/config.py   |  6 +++++-
>  config              | 11 +++++++++++
>  3 files changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/calypso/__init__.py b/calypso/__init__.py
> index 18cb880..d50329b 100644
> --- a/calypso/__init__.py
> +++ b/calypso/__init__.py
> @@ -157,6 +157,9 @@ class CollectionHTTPHandler(server.BaseHTTPRequestHandler):
>          self.send_response(response)
>          self.send_connection_header()
>          self.send_header("Content-Length", length)
> +        for header, value in config.items('headers'):
> +            self.send_header(header, value)
> +
>  
>      def handle_one_request(self):
>          """Handle a single HTTP request.
> diff --git a/calypso/config.py b/calypso/config.py
> index 59cbd85..0c3fee9 100644
> --- a/calypso/config.py
> +++ b/calypso/config.py
> @@ -60,7 +60,11 @@ INITIAL_CONFIG = {
>          "pam_service": "passwd",
>      },
>      "storage": {
> -        "folder": os.path.expanduser("~/.config/calypso/calendars")}}
> +        "folder": os.path.expanduser("~/.config/calypso/calendars")
> +    },
> +    "headers": {
> +    },
> +}
>  
>  # Create a ConfigParser and configure it
>  _CONFIG_PARSER = ConfigParser()
> diff --git a/config b/config
> index 1ef574c..7093716 100644
> --- a/config
> +++ b/config
> @@ -51,4 +51,15 @@ encryption = crypt
>  # created if not present
>  folder = ~/.config/calypso/calendars
>  
> +# The headers section allows verbatim addition of static headers to
> +# responses. The following exemplary headers are useful when the calendar
> +# should be accessed from users' web browsers using a web application hosted on
> +# a different server.
> +#
> +#[headers]
> +#Access-Control-Allow-Origin = *
> +#Access-Control-Allow-Credentials = *
> +#Access-Control-Allow-Methods = GET, POST, PUT, DELETE, PROPFIND, REPORT
> +#Access-Control-Allow-Headers = accept, authorization, content-type, depth, x-client, if-match
> +
>  # vim:ft=cfg
> -- 
> 2.8.0.rc3
> 
> _______________________________________________
> Calypso mailing list
> Calypso at keithp.com
> http://keithp.com/mailman/listinfo/calypso


More information about the Calypso mailing list