gpt4 book ai didi

python - 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

转载 作者:IT王子 更新时间:2023-10-29 01:17:43 32 4
gpt4 key购买 nike

我需要开发一些 python 代码以在建立 VPN 连接时执行,VPN 由 NetworkManager 控制,我正在尝试弄清楚如何为此使用 NM DBUS 事件。

使用“dbus-monitor --system”我能够识别连接信号:

signal sender=:1.1 -> dest=(null destination) serial=464 path=/org/freedesktop/NetworkManager/ActiveConnection/3; interface=org.freedesktop.NetworkManager.VPN.Connection; member=PropertiesChanged
array [
dict entry(
string "VpnState"
variant uint32 5
)
dict entry(
string "State"
variant uint32 2
)
]

现在我需要识别相应的信号处理程序调用签名:

bus.add_signal_receiver(
handler_name_in_your_program,
"signal_name",
"interface_name",
"connection_name",
"object_name"

)

有人可以帮我将 dbus-monitor 跟踪输出转换为总线信号处理程序的相应函数值吗?

最佳答案

我能够弄明白:

def vpn_connection_handler(*args, **keywords):
state = args[0].get('State',0)
if state == 2:
# On connect code goes here

system_bus.add_signal_receiver(vpn_connection_handler,
dbus_interface="org.freedesktop.NetworkManager.VPN.Connection",
signal_name="PropertiesChanged")

关于python - 用于 e NetworkManager VPN 连接的 dbus 信号处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401851/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com