Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
Eclipse Foundation
paho.mqtt.python
提交
4910b785
P
paho.mqtt.python
项目概览
镜像
/
Eclipse Foundation
/
paho.mqtt.python
10 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
paho.mqtt.python
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4910b785
编写于
8月 19, 2021
作者:
R
Roger Light
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Don't use deprecated socker.error exceptions.
上级
48612428
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
37 addition
and
55 deletion
+37
-55
src/paho/mqtt/client.py
src/paho/mqtt/client.py
+37
-55
未找到文件。
src/paho/mqtt/client.py
浏览文件 @
4910b785
...
...
@@ -180,10 +180,6 @@ class WebsocketConnectionError(ValueError):
pass
class
WouldBlockError
(
Exception
):
pass
def
error_string
(
mqtt_errno
):
"""Return the error string associated with an mqtt error number."""
if
mqtt_errno
==
MQTT_ERR_SUCCESS
:
...
...
@@ -284,9 +280,8 @@ def _socketpair_compat():
sock1
.
setblocking
(
0
)
try
:
sock1
.
connect
((
"127.0.0.1"
,
port
))
except
socket
.
error
as
err
:
if
err
.
errno
!=
errno
.
EINPROGRESS
and
err
.
errno
!=
errno
.
EWOULDBLOCK
and
err
.
errno
!=
EAGAIN
:
raise
except
BlockingIOError
:
pass
sock2
,
address
=
listensock
.
accept
()
sock2
.
setblocking
(
0
)
listensock
.
close
()
...
...
@@ -623,29 +618,23 @@ class Client(object):
def
_sock_recv
(
self
,
bufsize
):
try
:
return
self
.
_sock
.
recv
(
bufsize
)
except
socket
.
error
as
err
:
if
self
.
_ssl
and
err
.
errno
==
ssl
.
SSL_ERROR_WANT_READ
:
raise
WouldBlockError
()
if
self
.
_ssl
and
err
.
errno
==
ssl
.
SSL_ERROR_WANT_WRITE
:
except
ssl
.
SSLWantReadError
:
raise
BlockingIOError
except
ssl
.
SSLWantWriteError
:
self
.
_call_socket_register_write
()
raise
WouldBlockError
()
if
err
.
errno
==
EAGAIN
:
raise
WouldBlockError
()
raise
raise
BlockingIOError
def
_sock_send
(
self
,
buf
):
try
:
return
self
.
_sock
.
send
(
buf
)
except
socket
.
error
as
err
:
if
self
.
_ssl
and
err
.
errno
==
ssl
.
SSL_ERROR_WANT_READ
:
raise
WouldBlockError
()
if
self
.
_ssl
and
err
.
errno
==
ssl
.
SSL_ERROR_WANT_WRITE
:
except
ssl
.
SSLWantReadError
:
raise
BlockingIOError
except
ssl
.
SSLWantWriteError
:
self
.
_call_socket_register_write
()
raise
WouldBlockError
()
if
err
.
errno
==
EAGAIN
:
raise
BlockingIOError
except
BlockingIOError
:
self
.
_call_socket_register_write
()
raise
WouldBlockError
()
raise
raise
BlockingIOError
def
_sock_close
(
self
):
"""Close the connection to the server."""
...
...
@@ -1145,9 +1134,8 @@ class Client(object):
# Clear sockpairR - only ever a single byte written.
try
:
self
.
_sockpairR
.
recv
(
1
)
except
socket
.
error
as
err
:
if
err
.
errno
!=
EAGAIN
:
raise
except
BlockingIOError
:
pass
if
self
.
_sock
in
socklist
[
1
]:
rc
=
self
.
loop_write
(
max_packets
)
...
...
@@ -1700,7 +1688,7 @@ class Client(object):
retry_first_connection: Should the first connection attempt be retried on failure.
This is independent of the reconnect_on_failure setting.
Raises
socket.e
rror on first connection failures unless retry_first_connection=True
Raises
OSError/WebsocketConnectionE
rror on first connection failures unless retry_first_connection=True
"""
run
=
True
...
...
@@ -1712,7 +1700,7 @@ class Client(object):
if
self
.
_state
==
mqtt_cs_connect_async
:
try
:
self
.
reconnect
()
except
(
socket
.
error
,
OSError
,
WebsocketConnectionError
):
except
(
OSError
,
WebsocketConnectionError
):
self
.
_handle_on_connect_fail
()
if
not
retry_first_connection
:
raise
...
...
@@ -1749,7 +1737,7 @@ class Client(object):
else
:
try
:
self
.
reconnect
()
except
(
socket
.
error
,
OSError
,
WebsocketConnectionError
):
except
(
OSError
,
WebsocketConnectionError
):
self
.
_handle_on_connect_fail
()
self
.
_easy_log
(
MQTT_LOG_DEBUG
,
"Connection failed, retrying"
)
...
...
@@ -2339,9 +2327,9 @@ class Client(object):
if
self
.
_in_packet
[
'command'
]
==
0
:
try
:
command
=
self
.
_sock_recv
(
1
)
except
WouldBlock
Error
:
except
BlockingIO
Error
:
return
MQTT_ERR_AGAIN
except
socket
.
e
rror
as
err
:
except
ConnectionE
rror
as
err
:
self
.
_easy_log
(
MQTT_LOG_ERR
,
'failed to receive on socket: %s'
,
err
)
return
MQTT_ERR_CONN_LOST
...
...
@@ -2358,9 +2346,9 @@ class Client(object):
while
True
:
try
:
byte
=
self
.
_sock_recv
(
1
)
except
WouldBlock
Error
:
except
BlockingIO
Error
:
return
MQTT_ERR_AGAIN
except
socket
.
e
rror
as
err
:
except
ConnectionE
rror
as
err
:
self
.
_easy_log
(
MQTT_LOG_ERR
,
'failed to receive on socket: %s'
,
err
)
return
MQTT_ERR_CONN_LOST
...
...
@@ -2388,9 +2376,9 @@ class Client(object):
while
self
.
_in_packet
[
'to_process'
]
>
0
:
try
:
data
=
self
.
_sock_recv
(
self
.
_in_packet
[
'to_process'
])
except
WouldBlock
Error
:
except
BlockingIO
Error
:
return
MQTT_ERR_AGAIN
except
socket
.
e
rror
as
err
:
except
ConnectionE
rror
as
err
:
self
.
_easy_log
(
MQTT_LOG_ERR
,
'failed to receive on socket: %s'
,
err
)
return
MQTT_ERR_CONN_LOST
...
...
@@ -2437,10 +2425,10 @@ class Client(object):
except
(
AttributeError
,
ValueError
):
self
.
_out_packet
.
appendleft
(
packet
)
return
MQTT_ERR_SUCCESS
except
WouldBlock
Error
:
except
BlockingIO
Error
:
self
.
_out_packet
.
appendleft
(
packet
)
return
MQTT_ERR_AGAIN
except
socket
.
e
rror
as
err
:
except
ConnectionE
rror
as
err
:
self
.
_out_packet
.
appendleft
(
packet
)
self
.
_easy_log
(
MQTT_LOG_ERR
,
'failed to receive on socket: %s'
,
err
)
...
...
@@ -2975,9 +2963,8 @@ class Client(object):
# out of select() if in threaded mode.
try
:
self
.
_sockpairW
.
send
(
sockpair_data
)
except
socket
.
error
as
err
:
if
err
.
errno
!=
EAGAIN
:
raise
except
BlockingIOError
:
pass
# If we have an external event loop registered, use that instead
# of calling loop_write() directly.
...
...
@@ -3807,19 +3794,19 @@ class WebsocketWrapper(object):
def
_buffered_read
(
self
,
length
):
# try to recv and st
r
ore needed bytes
# try to recv and store needed bytes
wanted_bytes
=
length
-
(
len
(
self
.
_readbuffer
)
-
self
.
_readbuffer_head
)
if
wanted_bytes
>
0
:
data
=
self
.
_socket
.
recv
(
wanted_bytes
)
if
not
data
:
raise
socket
.
error
(
errno
.
ECONNABORTED
,
0
)
raise
ConnectionAbortedError
else
:
self
.
_readbuffer
.
extend
(
data
)
if
len
(
data
)
<
wanted_bytes
:
raise
socket
.
error
(
EAGAIN
,
0
)
raise
BlockingIOError
self
.
_readbuffer_head
+=
length
return
self
.
_readbuffer
[
self
.
_readbuffer_head
-
length
:
self
.
_readbuffer_head
]
...
...
@@ -3901,16 +3888,11 @@ class WebsocketWrapper(object):
and
payload_length
>
0
:
return
result
else
:
raise
socket
.
error
(
EAGAIN
,
0
)
raise
BlockingIOError
except
socket
.
error
as
err
:
if
err
.
errno
==
errno
.
ECONNABORTED
:
except
ConnectionError
:
self
.
connected
=
False
return
b
''
else
:
# no more data
raise
def
_send_impl
(
self
,
data
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录