~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/externalbugtracker/xmlrpc.py

[r=jtv][bug=714820] Ignore malformed responses when probing remote
        Bugzilla instances for XML-RPC capabilities.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
__metaclass__ = type
7
7
__all__ = [
8
8
    'UrlLib2Transport',
9
 
    'XMLRPCRedirectHandler'
 
9
    'XMLRPCRedirectHandler',
10
10
    ]
11
11
 
12
12
 
13
13
from cookielib import Cookie
 
14
from cStringIO import StringIO
14
15
from urllib2 import (
15
16
    build_opener,
16
17
    HTTPCookieProcessor,
27
28
    Transport,
28
29
    )
29
30
 
 
31
from lp.services.utils import traceback_info
 
32
 
30
33
 
31
34
class XMLRPCRedirectHandler(HTTPRedirectHandler):
32
35
    """A handler for HTTP redirections of XML-RPC requests."""
105
108
        headers = {'Content-type': 'text/xml'}
106
109
        request = Request(url, request_body, headers)
107
110
        try:
108
 
            response = self._parse_response(self.opener.open(request), None)
 
111
            response = self.opener.open(request).read()
109
112
        except HTTPError, he:
110
113
            raise ProtocolError(
111
114
                request.get_full_url(), he.code, he.msg, he.hdrs)
112
 
        return response
 
115
        else:
 
116
            traceback_info(response)
 
117
            return self._parse_response(StringIO(response), None)