Re: NMClient.IP4Config get_addresses() not always populated when signal 'notify::ip4-config' is fired



On Sun, 2015-03-15 at 12:46 +0100, Sylvain Garaud wrote:
Hello,

I am writing a small javascript for gnome to grab the ip addresses of my
network interfaces using imports.gi.NMClient;
Basically I get the devices and connect each device to the
notify::ip4-config signal to be able to update the ip address value when it
changes

Which version of NM are you using?

this.client = NMC.Client.new();
this.devices = this.client.get_devices();
for each (let device in this.devices) {
    device.connect('notify::ip4-config',Lang.bind(this,this._update));
}

It works fine for the wifi connection but there is a problem with the
ethernet connection.
After turning my ethernet connection up,  the signal 'notify::ip4-config'
is fired, the device state is ACTIVATED, so I try to get the ip4 config.
with ipcfg = device.get_ip4_config();
I get a not null ipcfg object, unfortunately ipcfg.get_addresses() is not
defined yet.

So that we can narrow the issue down, could you run:

dbus-monitor --system "type='signal',sender='org.freedesktop.NetworkManager'"

and reproduce the problem?  This will let us know the sequence of D-BUs
events that come directly from NetworkManager, so that we can see the
raw data that libnm/libnm-glib is getting.

Dan

I see in my journalctl log few seconds later, some dhcp network manager
message.

 _update: function(device) {
      let ipcfg = device.get_ip4_config();
      if (ipcfg != null) {
         for each(let addr in ipcfg.get_addresses()){
            let num = addr.get_address();
         }
      }
   },

How to be sure ipcfg.get_addresses() will return something ?
Could someone tell me which signal to use for being sure the ip address is
set when calling ipcfg.get_addresses()? I tried using the
'notify::dhcp4-config' signal instead 'notify::ip4-config' without much
success.

Thank you very much for your help,

Sylvain
_______________________________________________
networkmanager-list mailing list
networkmanager-list gnome org
https://mail.gnome.org/mailman/listinfo/networkmanager-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]