nodejs dbus кодирует количество в байтах, как мне сделать так, чтобы оно кодировало как uint32? - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь использовать 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

Есть идеи?

Спасибо!

...