aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http
diff options
context:
space:
mode:
Diffstat (limited to 'netlib/http')
-rw-r--r--netlib/http/headers.py6
-rw-r--r--netlib/http/message.py8
-rw-r--r--netlib/http/request.py10
3 files changed, 17 insertions, 7 deletions
diff --git a/netlib/http/headers.py b/netlib/http/headers.py
index 14888ea9..f052a53b 100644
--- a/netlib/http/headers.py
+++ b/netlib/http/headers.py
@@ -156,8 +156,10 @@ class Headers(multidict.MultiDict):
Returns:
The number of replacements made.
"""
- pattern = _always_bytes(pattern)
- repl = _always_bytes(repl)
+ if isinstance(pattern, six.text_type):
+ pattern = strutils.escaped_str_to_bytes(pattern)
+ if isinstance(repl, six.text_type):
+ repl = strutils.escaped_str_to_bytes(repl)
pattern = re.compile(pattern, flags)
replacements = 0
diff --git a/netlib/http/message.py b/netlib/http/message.py
index b633b671..0583c246 100644
--- a/netlib/http/message.py
+++ b/netlib/http/message.py
@@ -1,5 +1,6 @@
from __future__ import absolute_import, print_function, division
+import re
import warnings
import six
@@ -196,11 +197,14 @@ class Message(basetypes.Serializable):
Returns:
The number of replacements made.
"""
- # TODO: Proper distinction between text and bytes.
+ if isinstance(pattern, six.text_type):
+ pattern = strutils.escaped_str_to_bytes(pattern)
+ if isinstance(repl, six.text_type):
+ repl = strutils.escaped_str_to_bytes(repl)
replacements = 0
if self.content:
with decoded(self):
- self.content, replacements = strutils.safe_subn(
+ self.content, replacements = re.subn(
pattern, repl, self.content, flags=flags
)
replacements += self.headers.replace(pattern, repl, flags)
diff --git a/netlib/http/request.py b/netlib/http/request.py
index b64ccc51..ff057b79 100644
--- a/netlib/http/request.py
+++ b/netlib/http/request.py
@@ -65,10 +65,14 @@ class Request(message.Message):
Returns:
The number of replacements made.
"""
- # TODO: Proper distinction between text and bytes.
+ if isinstance(pattern, six.text_type):
+ pattern = strutils.escaped_str_to_bytes(pattern)
+ if isinstance(repl, six.text_type):
+ repl = strutils.escaped_str_to_bytes(repl)
+
c = super(Request, self).replace(pattern, repl, flags)
- self.path, pc = strutils.safe_subn(
- pattern, repl, self.path, flags=flags
+ self.path, pc = re.subn(
+ pattern, repl, self.data.path, flags=flags
)
c += pc
return c