Allow removing a header easily

This commit is contained in:
Kovid Goyal 2017-03-02 13:28:36 +05:30
parent 17a2d6dc26
commit 287fa950a1

View File

@ -53,15 +53,22 @@ class Browser(B):
def https_handler(self): def https_handler(self):
return self._ua_handlers['https'] return self._ua_handlers['https']
def set_current_header(self, header, value): def set_current_header(self, header, value=None):
found = False found = False
q = header.lower() q = header.lower()
remove = []
for i, (k, v) in enumerate(tuple(self.addheaders)): for i, (k, v) in enumerate(tuple(self.addheaders)):
if k.lower() == q: if k.lower() == q:
self.addheaders[i] = (header, value) if value:
found = True self.addheaders[i] = (header, value)
found = True
else:
remove.append(i)
if not found: if not found:
self.addheaders.append((header, value)) self.addheaders.append((header, value))
if remove:
for i in reversed(remove):
del self.addheaders[i]
def current_user_agent(self): def current_user_agent(self):
for k, v in self.addheaders: for k, v in self.addheaders: