Fixing Origin header for Bridge 2.0.7

This commit is contained in:
slush 2018-03-01 10:33:47 +01:00
parent fd41db8a59
commit e37e9bfebd
1 changed files with 7 additions and 6 deletions

View File

@ -42,6 +42,7 @@ class BridgeTransport(Transport):
''' '''
PATH_PREFIX = 'bridge' PATH_PREFIX = 'bridge'
HEADERS = {'Origin': 'https://python.trezor.io'}
def __init__(self, device): def __init__(self, device):
super(BridgeTransport, self).__init__() super(BridgeTransport, self).__init__()
@ -57,10 +58,10 @@ class BridgeTransport(Transport):
def get_path(self): def get_path(self):
return '%s:%s' % (self.PATH_PREFIX, self.device['path']) return '%s:%s' % (self.PATH_PREFIX, self.device['path'])
@staticmethod @classmethod
def enumerate(): def enumerate(cls):
try: try:
r = requests.post(TREZORD_HOST + '/enumerate') r = requests.post(TREZORD_HOST + '/enumerate', headers=cls.HEADERS)
if r.status_code != 200: if r.status_code != 200:
raise TransportException('trezord: Could not enumerate devices' + get_error(r)) raise TransportException('trezord: Could not enumerate devices' + get_error(r))
return [BridgeTransport(dev) for dev in r.json()] return [BridgeTransport(dev) for dev in r.json()]
@ -79,7 +80,7 @@ class BridgeTransport(Transport):
raise TransportException('Bridge device not found') raise TransportException('Bridge device not found')
def open(self): def open(self):
r = self.conn.post(TREZORD_HOST + '/acquire/%s/null' % self.device['path']) r = self.conn.post(TREZORD_HOST + '/acquire/%s/null' % self.device['path'], headers=self.HEADERS)
if r.status_code != 200: if r.status_code != 200:
raise TransportException('trezord: Could not acquire session' + get_error(r)) raise TransportException('trezord: Could not acquire session' + get_error(r))
self.session = r.json()['session'] self.session = r.json()['session']
@ -87,7 +88,7 @@ class BridgeTransport(Transport):
def close(self): def close(self):
if not self.session: if not self.session:
return return
r = self.conn.post(TREZORD_HOST + '/release/%s' % self.session) r = self.conn.post(TREZORD_HOST + '/release/%s' % self.session, headers=self.HEADERS)
if r.status_code != 200: if r.status_code != 200:
raise TransportException('trezord: Could not release session' + get_error(r)) raise TransportException('trezord: Could not release session' + get_error(r))
self.session = None self.session = None
@ -99,7 +100,7 @@ class BridgeTransport(Transport):
header = struct.pack(">HL", mapping.get_type(msg), len(ser)) header = struct.pack(">HL", mapping.get_type(msg), len(ser))
data = binascii.hexlify(header + ser).decode() data = binascii.hexlify(header + ser).decode()
r = self.conn.post( r = self.conn.post(
TREZORD_HOST + '/call/%s' % self.session, data=data) TREZORD_HOST + '/call/%s' % self.session, data=data, headers=self.HEADERS)
if r.status_code != 200: if r.status_code != 200:
raise TransportException('trezord: Could not write message' + get_error(r)) raise TransportException('trezord: Could not write message' + get_error(r))
self.response = r.text self.response = r.text