提交 15d0a997 编写于 作者: R Roger Light

Handle EAGAIN on Windows.

上级 f1b3b685
...@@ -17,6 +17,7 @@ This is an MQTT v3.1 client module. MQTT is a lightweight pub/sub messaging ...@@ -17,6 +17,7 @@ This is an MQTT v3.1 client module. MQTT is a lightweight pub/sub messaging
protocol that is easy to implement and suitable for low powered devices. protocol that is easy to implement and suitable for low powered devices.
""" """
import errno import errno
import platform
import random import random
import select import select
import socket import socket
...@@ -39,6 +40,11 @@ try: ...@@ -39,6 +40,11 @@ try:
except ImportError: except ImportError:
HAVE_DNS = False HAVE_DNS = False
if platform.system() == 'Windows':
EAGAIN = errno.WSAEWOULDBLOCK
else:
EAGAIN = errno.EAGAIN
if sys.version_info[0] < 3: if sys.version_info[0] < 3:
PROTOCOL_NAME = "MQIsdp" PROTOCOL_NAME = "MQIsdp"
else: else:
...@@ -1244,7 +1250,7 @@ class Client: ...@@ -1244,7 +1250,7 @@ class Client:
(msg) = err (msg) = err
if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE): if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE):
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
if msg.errno == errno.EAGAIN: if msg.errno == EAGAIN:
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
print(msg) print(msg)
return 1 return 1
...@@ -1268,7 +1274,7 @@ class Client: ...@@ -1268,7 +1274,7 @@ class Client:
(msg) = err (msg) = err
if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE): if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE):
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
if msg.errno == errno.EAGAIN: if msg.errno == EAGAIN:
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
print(msg) print(msg)
return 1 return 1
...@@ -1300,7 +1306,7 @@ class Client: ...@@ -1300,7 +1306,7 @@ class Client:
(msg) = err (msg) = err
if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE): if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE):
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
if msg.errno == errno.EAGAIN: if msg.errno == EAGAIN:
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
print(msg) print(msg)
return 1 return 1
...@@ -1339,7 +1345,7 @@ class Client: ...@@ -1339,7 +1345,7 @@ class Client:
(msg) = err (msg) = err
if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE): if self._ssl and (msg.errno == ssl.SSL_ERROR_WANT_READ or msg.errno == ssl.SSL_ERROR_WANT_WRITE):
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
if msg.errno == errno.EAGAIN: if msg.errno == EAGAIN:
return MQTT_ERR_AGAIN return MQTT_ERR_AGAIN
print(msg) print(msg)
return 1 return 1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册