From 287fa950a1bb9fb19242bb6ef99b8b9736adb5dc Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 2 Mar 2017 13:28:36 +0530 Subject: [PATCH] Allow removing a header easily --- src/calibre/utils/browser.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/calibre/utils/browser.py b/src/calibre/utils/browser.py index 4b95e85712..291e70194f 100644 --- a/src/calibre/utils/browser.py +++ b/src/calibre/utils/browser.py @@ -53,15 +53,22 @@ class Browser(B): def https_handler(self): return self._ua_handlers['https'] - def set_current_header(self, header, value): + def set_current_header(self, header, value=None): found = False q = header.lower() + remove = [] for i, (k, v) in enumerate(tuple(self.addheaders)): if k.lower() == q: - self.addheaders[i] = (header, value) - found = True + if value: + self.addheaders[i] = (header, value) + found = True + else: + remove.append(i) if not found: self.addheaders.append((header, value)) + if remove: + for i in reversed(remove): + del self.addheaders[i] def current_user_agent(self): for k, v in self.addheaders: