From 849459c63f6f55e8bb72e6938d47ec0cdf6f8171 Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <lfleischer@calcurse.org>
Date: Mon, 25 Jan 2016 19:36:27 +0100
Subject: calcurse-caldav: Support custom HTTP headers

Add support for specifying additional HTTP headers, such as the
User-Agent, in the configuration file.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
---
 contrib/caldav/calcurse-caldav.py | 8 +++++++-
 contrib/caldav/config.sample      | 4 ++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/contrib/caldav/calcurse-caldav.py b/contrib/caldav/calcurse-caldav.py
index 909d27b..841a63a 100755
--- a/contrib/caldav/calcurse-caldav.py
+++ b/contrib/caldav/calcurse-caldav.py
@@ -83,7 +83,8 @@ def get_auth_headers():
     return headers
 
 def remote_query(cmd, path, additional_headers, body):
-    headers = get_auth_headers()
+    headers = custom_headers.copy()
+    headers.update(get_auth_headers())
     if cmd == 'PUT':
         headers['Content-Type'] = 'text/calendar; charset=utf-8'
     else:
@@ -380,6 +381,11 @@ if config.has_option('Auth', 'Password'):
 else:
     password = None
 
+if config.has_section('CustomHeaders'):
+    custom_headers = dict(config.items('CustomHeaders'))
+else:
+    custom_headers = {}
+
 # Show disclaimer when performing a dry run.
 if dry_run:
     print('Dry run. Nothing is actually imported/exported.')
diff --git a/contrib/caldav/config.sample b/contrib/caldav/config.sample
index e2b3abe..9b21b2b 100644
--- a/contrib/caldav/config.sample
+++ b/contrib/caldav/config.sample
@@ -29,3 +29,7 @@ Verbose = Yes
 #[Auth]
 #Username = user
 #Password = pass
+
+# Optionally specify additional HTTP headers here.
+#[CustomHeaders]
+#User-Agent = Mac_OS_X/10.9.2 (13C64) CalendarAgent/176
-- 
cgit v1.2.3-70-g09d2