1. 18 Apr, 2017 4 commits
    • Thomas Haller's avatar
      core: add NMNetns to bundle platform and route managers · 0af2f5c2
      Thomas Haller authored
      NMPlatform, NMRouteManager and NMDefaultRouteManager are singletons
      instances. Users of those are for example NMDevice, which registers
      to GObject signals of both NMPlatform and NMRouteManager.
      
      Hence, as NMDevice:dispose() disconnects the signal handlers, it must
      ensure that those singleton instances live longer then the NMDevice
      instance. That is usually accomplished by having users of singleton
      instances own a reference to those instances.
      For NMDevice that effectively means that it shall own a reference to
      several singletons.
      
      NMPlatform, NMRouteManager, and NMDefaultRouteManager are all
      per-namespace. In general it doesn't make sense to have more then
      one instances of these per name space. Nnote that currently we don't
      support multiple namespaces yet. If we will ever support multiple
      namespaces, then a NMDevice would have a reference to all of these
      manager instances. Hence, introduce a new class NMNetns which bundles
      them together.
      0af2f5c2
    • Beniamino Galvani's avatar
      manager: set interface as removed when the link disappears · df537d2e
      Beniamino Galvani authored
      Set the device state as removed when the link disappears, so that in
      the call to unrealize() when the device is unmanaged we also perform a
      cleanup of it and especially, we terminate any DHCP client instances
      running on the device.
      
      If we keep DHCP clients running, we can hit assertions later when we
      start another instance on the same interface, because we kill the old
      dhclient from the pidfile, and the g_child_watch_add() done by the
      first client instance is not able to waitpid() it, complaining with:
      
        GChildWatchSource: Exit status of a child process was requested but
        ECHILD was received by waitpid(). Most likely the process is
        ignoring SIGCHLD, or some other thread is invoking waitpid() with a
        nonpositive first argument; either behavior can break applications
        that use g_child_watch_add()/g_spawn_sync() either directly or
        indirectly.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1436602
      df537d2e
    • Beniamino Galvani's avatar
      clients: fix setting of enum properties · afca8a4c
      Beniamino Galvani authored
      Ensure we call G_IS_ENUM_CLASS() or G_IS_FLAGS_CLASS() only on classed
      types.
      
       $ nmcli connection modify foobar wifi.powersave 1
       Thread 1 "nmcli" received signal SIGSEGV, Segmentation fault.
       0x0000000000440a4d in _set_fcn_gobject_enum at
       clients/common/nm-meta-setting-desc.c:985
       985                 || G_IS_ENUM_CLASS (gtype_prop)) {
      
      Fixes: f53218ed
      afca8a4c
    • Dan Williams's avatar
  2. 17 Apr, 2017 1 commit
  3. 15 Apr, 2017 9 commits
  4. 14 Apr, 2017 9 commits
  5. 13 Apr, 2017 9 commits
  6. 12 Apr, 2017 8 commits