work on python 3 compatibility
diff --git a/examples/rfc2217_server.py b/examples/rfc2217_server.py
index 069900a..886925a 100644
--- a/examples/rfc2217_server.py
+++ b/examples/rfc2217_server.py
@@ -5,16 +5,16 @@
# using RFC 2217
-import sys
+import logging
import os
-import threading
-import time
import socket
+import sys
+import time
+import threading
import serial
import serial.rfc2217
-import logging
-class Redirector:
+class Redirector(object):
def __init__(self, serial_instance, socket, debug=None):
self.serial = serial_instance
self.socket = socket
@@ -59,12 +59,9 @@
if data:
# escape outgoing data when needed (Telnet IAC (0xff) character)
data = serial.to_bytes(self.rfc2217.escape(data))
- self._write_lock.acquire()
- try:
+ with self._write_lock:
self.socket.sendall(data) # send it over TCP
- finally:
- self._write_lock.release()
- except socket.error, msg:
+ except socket.error as msg:
self.log.error('%s' % (msg,))
# probably got disconnected
break
@@ -73,11 +70,8 @@
def write(self, data):
"""thread safe socket write with no data escaping. used to send telnet stuff"""
- self._write_lock.acquire()
- try:
+ with self._write_lock:
self.socket.sendall(data)
- finally:
- self._write_lock.release()
def writer(self):
"""loop forever and copy socket->serial"""
@@ -87,7 +81,7 @@
if not data:
break
self.serial.write(serial.to_bytes(self.rfc2217.filter(data)))
- except socket.error, msg:
+ except socket.error as msg:
self.log.error('%s' % (msg,))
# probably got disconnected
break
@@ -198,7 +192,7 @@
ser.applySettingsDict(settings)
except KeyboardInterrupt:
break
- except socket.error, msg:
+ except socket.error as msg:
logging.error('%s' % (msg,))
logging.info('--- exit ---')