Я пытаюсь использовать 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
.
I 'Мы попробовали несколько идей, чтобы заставить 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
Есть идеи?
Спасибо!