mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
...
This commit is contained in:
commit
b7e169c67e
@ -133,10 +133,13 @@ class SMART_DEVICE_APP(DeviceConfig, DevicePlugin):
|
|||||||
return
|
return
|
||||||
total_elapsed = time.time() - self.debug_start_time
|
total_elapsed = time.time() - self.debug_start_time
|
||||||
elapsed = time.time() - self.debug_time
|
elapsed = time.time() - self.debug_time
|
||||||
prints('SMART_DEV (%7.2f:%7.3f) %s'%(total_elapsed, elapsed,
|
print('SMART_DEV (%7.2f:%7.3f) %s'%(total_elapsed, elapsed,
|
||||||
inspect.stack()[1][3]), end='')
|
inspect.stack()[1][3]), end='')
|
||||||
for a in args:
|
for a in args:
|
||||||
prints(a, end='')
|
try:
|
||||||
|
prints('', a, end='')
|
||||||
|
except:
|
||||||
|
prints('', 'value too long', end='')
|
||||||
print()
|
print()
|
||||||
self.debug_time = time.time()
|
self.debug_time = time.time()
|
||||||
|
|
||||||
@ -281,16 +284,16 @@ class SMART_DEVICE_APP(DeviceConfig, DevicePlugin):
|
|||||||
return json.dumps([op, res], encoding='utf-8')
|
return json.dumps([op, res], encoding='utf-8')
|
||||||
|
|
||||||
# Network functions
|
# Network functions
|
||||||
def _read_string_from_net(self, conn):
|
def _read_string_from_net(self):
|
||||||
data = bytes(0)
|
data = bytes(0)
|
||||||
while True:
|
while True:
|
||||||
dex = data.find('[')
|
dex = data.find(b'[')
|
||||||
if dex >= 0:
|
if dex >= 0:
|
||||||
break
|
break
|
||||||
# conn.recv seems to return a pointer into some internal buffer.
|
# recv seems to return a pointer into some internal buffer.
|
||||||
# Things get trashed if we don't make a copy of the data.
|
# Things get trashed if we don't make a copy of the data.
|
||||||
self.device_socket.settimeout(self.MAX_CLIENT_COMM_TIMEOUT)
|
self.device_socket.settimeout(self.MAX_CLIENT_COMM_TIMEOUT)
|
||||||
v = conn.recv(self.BASE_PACKET_LEN)
|
v = self.device_socket.recv(self.BASE_PACKET_LEN)
|
||||||
self.device_socket.settimeout(None)
|
self.device_socket.settimeout(None)
|
||||||
if len(v) == 0:
|
if len(v) == 0:
|
||||||
return '' # documentation says the socket is broken permanently.
|
return '' # documentation says the socket is broken permanently.
|
||||||
@ -300,7 +303,7 @@ class SMART_DEVICE_APP(DeviceConfig, DevicePlugin):
|
|||||||
pos = len(data)
|
pos = len(data)
|
||||||
while pos < total_len:
|
while pos < total_len:
|
||||||
self.device_socket.settimeout(self.MAX_CLIENT_COMM_TIMEOUT)
|
self.device_socket.settimeout(self.MAX_CLIENT_COMM_TIMEOUT)
|
||||||
v = conn.recv(total_len - pos)
|
v = self.device_socket.recv(total_len - pos)
|
||||||
self.device_socket.settimeout(None)
|
self.device_socket.settimeout(None)
|
||||||
if len(v) == 0:
|
if len(v) == 0:
|
||||||
return '' # documentation says the socket is broken permanently.
|
return '' # documentation says the socket is broken permanently.
|
||||||
@ -326,7 +329,7 @@ class SMART_DEVICE_APP(DeviceConfig, DevicePlugin):
|
|||||||
self.device_socket.settimeout(self.MAX_CLIENT_COMM_TIMEOUT)
|
self.device_socket.settimeout(self.MAX_CLIENT_COMM_TIMEOUT)
|
||||||
self.device_socket.sendall(('%d' % len(s))+s)
|
self.device_socket.sendall(('%d' % len(s))+s)
|
||||||
self.device_socket.settimeout(None)
|
self.device_socket.settimeout(None)
|
||||||
v = self._read_string_from_net(self.device_socket)
|
v = self._read_string_from_net()
|
||||||
if print_debug_info and extra_debug:
|
if print_debug_info and extra_debug:
|
||||||
self._debug('received string', v)
|
self._debug('received string', v)
|
||||||
if v:
|
if v:
|
||||||
@ -448,13 +451,12 @@ class SMART_DEVICE_APP(DeviceConfig, DevicePlugin):
|
|||||||
# through and actually try to talk to the client.
|
# through and actually try to talk to the client.
|
||||||
try:
|
try:
|
||||||
# This will usually toss an exception if the socket is gone.
|
# This will usually toss an exception if the socket is gone.
|
||||||
try:
|
if self._call_client('NOOP', dict())[0] is None:
|
||||||
if self._call_client('NOOP', dict())[0] is None:
|
|
||||||
self.is_connected = False
|
|
||||||
except:
|
|
||||||
self.is_connected = False
|
self.is_connected = False
|
||||||
except:
|
except:
|
||||||
self.is_connected = False
|
self.is_connected = False
|
||||||
|
if not self.is_connected:
|
||||||
|
self.device_socket.close()
|
||||||
return (self.is_connected, self)
|
return (self.is_connected, self)
|
||||||
if getattr(self, 'listen_socket', None) is not None:
|
if getattr(self, 'listen_socket', None) is not None:
|
||||||
ans = select.select((self.listen_socket,), (), (), 0)
|
ans = select.select((self.listen_socket,), (), (), 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user