setHeader.py 585 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
import re
from ZPublisher import HTTPResponse

_CRLF = re.compile(r'[\r\n]')
HTTPResponse._CRLF = _CRLF


if getattr(HTTPResponse, '_scrubHeader', None) is None:
    def _scrubHeader(name, value):
        return ''.join(_CRLF.split(str(name))), ''.join(_CRLF.split(str(value)))

    HTTPResponse.HTTPResponse.__old_setHeader = HTTPResponse.HTTPResponse.setHeader

    def setHeader(self, name, value, *args, **kwargs):
        name, value = _scrubHeader(name, value)
        return self.__old_setHeader(name, value, *args, **kwargs)
    HTTPResponse.HTTPResponse.setHeader = setHeader