nodejs dbus кодирует количество в байтах, как мне сделать так, чтобы оно кодировало как uint32?
Я пытаюсь использовать NPM dbus для управления адаптером Ethernet и получить следующую ошибку, показанную здесь в dbus-monitor
выходной.
error time=1540389658.120119 sender=:1.14 -> destination=:1.198 error_name=org.freedesktop.NetworkManager.Settings.Connection.InvalidProperty reply_serial=37
string "ipv4.gateway: gateway cannot be set if there are no addresses configured"
Итак, он жалуется, что не настроены адреса...
Давайте посмотрим на данные адреса npm-dbus
послал...
dict entry(
string "address-data"
variant array [
array [
dict entry(
string "address"
variant string "192.168.1.200"
)
dict entry(
string "prefix"
variant byte 24
)
]
]
)
Это отличается от того, что работает, используя gdbus
командная строка, соответствующая выдержка здесь:
'ipv4':\
{
'method': <'manual'>,\
'dns': <[uint32 4261521600]>,\
'address-data': <[{'address': <'192.168.1.198'>, 'prefix': <uint32 24>}]>,\
'gateway': <'192.168.1.1'>
}
Я думаю, что курящий пистолет в том, что 'prefix': <uint32 24>
в gdbus
версия по сравнению с byte 24
создано npm-dbus
,
Я попробовал несколько идей, чтобы получить npm-dbus
закодировать префикс как uint32, но безуспешно. Вот объект javascript, который я добавляю в него:
ipv4: {
method: 'manual',
dns: [4261521600],
'address-data': [{'address': '192.168.1.200', 'prefix': 24}],
gateway: '192.168.1.1'
}
Вещи, которые я пробовал в определении этого объекта, которые все еще привели к prefix
кодируется как байт:
'prefix': 0x00000018 // byte 24
'prefix': 0x10000018 - 0x10000000 // byte 24
Есть идеи?
Спасибо!