1. 19 Nov, 2014 14 commits
  2. 18 Nov, 2014 1 commit
    • Dan Winship's avatar
      core: fix IP4Config.RouteData and IP6Config.RouteData · fac424b0
      Dan Winship authored
      NMIP4Config/NMIP6Config have their own NMIPRoute->D-Bus conversion
      code since the code in libnm-core is gdbus-specific. But they were
      doing it wrong, resulting in clients seeing a next hop of 0.0.0.0/::
      for all routes.
      fac424b0
  3. 17 Nov, 2014 4 commits
    • Dan Williams's avatar
      trivial: remove leftover NM_IFACE_HELPER references · 3c1187ad
      Dan Williams authored
      Left over from a previous version of the iface helper patches and was
      never removed when NM_IFACE_HELPER was removed.  Since NM_IFACE_HELPER
      wasn't defined, this code was already always compiled.
      3c1187ad
    • Dan Williams's avatar
      core: bounce disable_ipv6 when setting userspace IPv6 link-local (bgo #740096) · 70f227f5
      Dan Williams authored
      The kernel does not terminate an ongoing IPv6LL address process when
      the IPv6LL address generation mode is set to 'none' (indicating that
      userspace wishes to handle IPv6LL).  Next, NetworkManager does not
      expose IPv6 addresses internally until they have completed DAD.  This
      means that the kernel may still be performing DAD for an IPv6LL
      address when NetworkManager turns userspace IPv6LL on, and when
      DAD is complete NetworkManager will finally pay attention to the
      address.  If the device is in the DISCONNECTED state, NetworkManager
      will then generate and assume an IPv6LL-only connection on the device.
      
      Unfortunately, that behavior happens if the following is true:
      
      1) IPv6LL addressing takes a while (eg, dad_transmits is high or
      the kernel takes a while for some reason)
      
      2) the activated connection fails quickly (dhclient fails or some
      other fatal error terminates the activation attempt)
      
      3) the activated connection has ipv6.method=ignore
      
      In this case, when the device was brought up and ipv6.method=ignore,
      NetworkManager re-enabled kernel IPv6LL and reset the IPv6 sysctl
      properties.  The kernel then generated an IPv6LL address and began
      DAD.  dhclient failed quickly, and NM deactivated the device.  NM
      then turned off kernel IPv6LL when deactivating the device, but the
      kernel does not terminate the ongoing DAD.  Some time after the device
      entered the DISCONNECTED state, the kernel finished DAD and that
      allowed NetworkManager to internally see the address, which caused
      NetworkManager to emit the 'recheck-assume' signal.  This
      generated a new IPv6LL-only connection which was then assumed.
      
      Bouncing 'disable_ipv6' when re-enabling userspace IPv6LL during
      device deactivation flushes the tentative kernel IPv6LL address,
      thus preventing the address from being announced after userspace
      IPv6LL is re-enabled.  The other alternative is to expose
      tentative addresses (eg those still doing DAD) in NMPlatform so
      they would be flushed when the device deactivates, but that is a
      larger & riskier set of changes.
      
      Reproducer:
      - ifconfig eth0 down
      - prepare a DHCPv4 connection with ipv6.method=ignore
      - set /proc/sys/net/ipv6/conf/all/dad_transmits to "15"
      - ensure that DHCPv4 will fail (replace dhclient with a script
          that exits after 2 seconds or something)
      - run NetworkManager
      - activate the DHCP connection and watch it immediately fail
      - wait for the kernel to announce the IPv6LL address after DAD finishes
      - watch NM "assume" the new IPv6LL connection
      
      https://bugzilla.gnome.org/show_bug.cgi?id=740096
      70f227f5
    • Dan Williams's avatar
      dhcp: wait for an IPv6LL address before starting DHCPv6 (bgo #740147) · d1295b12
      Dan Williams authored
      For ipv6.method=dhcp NM was not waiting for an IPv6LL address, which
      caused the DHCP client to exit early because it had no local address
      to bind to.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=740147
      d1295b12
    • Dan Williams's avatar
      wifi: don't query nl80211 for non-WiFi devices (bgo #740131) · 45bfb653
      Dan Williams authored
      The upstream kernel added module aliases for nl80211 in commit
      fb4e156886ce6e8309e912d8b370d192330d19d3, so querying nl80211
      now auto-loads the module.  Previously NM was doing this to
      determine whether an ethernet-like device was a Wi-Fi device
      that supported nl80211, but this leads to the nl80211 loading
      on platforms that will never have or use Wi-Fi.
      
      Since every nl80211-capable device will already have
      DEVTYPE=wlan set (from /sys/class/net/wlan0/uevent), we can use
      that as an indicator that the ethernet-like device is WiFi
      instead of asking nl80211.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=740131
      45bfb653
  4. 15 Nov, 2014 7 commits
  5. 14 Nov, 2014 8 commits
  6. 13 Nov, 2014 6 commits
    • Dan Winship's avatar
      2fa1b7f2
    • Dan Winship's avatar
      libnm*: fix library gettext usage · 53f5e9af
      Dan Winship authored
      Libraries need to include <gi18n-lib.h>, not <gi18n.h>, so that _()
      will get defined to "dgettext (GETTEXT_DOMAIN, string)" rather than
      "gettext (string)" (which will use the program's default domain, which
      works fine for programs in the NetworkManager tree, but not for
      external users). Likewise, we need to call bindtextdomain() so that
      gettext can find the translations if the library is installed in a
      different prefix from the program using it (and
      bind_textdomain_codeset(), so it will know the translations are in
      UTF-8 even if the locale isn't).
      
      (The fact that no one noticed this was broken before is because the
      libraries didn't really start returning useful translated strings much
      until 0.9.10, and none of the out-of-tree clients have been updated to
      actually show those strings to users yet.)
      53f5e9af
    • Dan Winship's avatar
      all: consistently include config.h · 3bfb163a
      Dan Winship authored
      config.h should be included from every .c file, and it should be
      included before any other include. Fix that.
      
      (As a side effect of how I did this, this also changes us to
      consistently use "config.h" rather than <config.h>. To the extent that
      it matters [which is not much], quotes are more correct anyway, since
      we're talking about a file in our own build tree, not a system
      include.)
      3bfb163a
    • Thomas Haller's avatar
      dhcp: log the configured DHCP client · 125f7c4d
      Thomas Haller authored
      Also move enumerating the installed DHCP plugins to the beginning
      of nm_dhcp_manager_init().
      Signed-off-by: Thomas Haller's avatarThomas Haller <thaller@redhat.com>
      125f7c4d
    • Lubomir Rintel's avatar
      contrib: Enable PolicyKit agent in RPM · ae829a88
      Lubomir Rintel authored
      ae829a88
    • Lubomir Rintel's avatar
      contrib: Require libselinux for RPM build · 84c85586
      Lubomir Rintel authored
      It ensures ifcfg-rh doesn't mess up the labels.
      84c85586