8 years agostash test
Pavel Šimerda [Wed, 9 May 2012 17:20:07 +0000]

8 years agoip6: moved dhcp_opts to NMIP6Device
Pavel Šimerda [Wed, 9 May 2012 17:14:42 +0000]
ip6: moved dhcp_opts to NMIP6Device

This allows for a smoother program flow without excess

8 years agoip6: removed process_prefix and initial call to nm_ip6_device_sync_from_netlink
Pavel Šimerda [Wed, 9 May 2012 15:25:00 +0000]
ip6: removed process_prefix and initial call to nm_ip6_device_sync_from_netlink

Dan Winship told be that watching RTM_NEWPREFIX is not necessary because
Router Advertisements will trigger RTM_NEWROUTE anyway. Resyncing
addresses at the beginning is harmful because it sees the situation
before initial device teardown occurs. This causes NMIP6Device to
first change state to 'got-link-local' (or more) and then back
to 'unconfigured'.

8 years agoip6: split nm_ip6_device_sync_from_netlink
Pavel Šimerda [Wed, 9 May 2012 15:12:15 +0000]
ip6: split nm_ip6_device_sync_from_netlink

Split this function that is called unnecessarily often into
several functions so that it's possible to remove it in
the future.

8 years agocli: fix 'nm -nocheck con up'
Jiří Klimeš [Wed, 9 May 2012 10:54:09 +0000]
cli: fix 'nm -nocheck con up'

When '-nocheck' option was used, NMClient object was created later in the
operation process.
This caused that the callback in nm_client_activate_connection() was not
called. It's fixed by creating NMClient early.

8 years agocli: show progress in --pretty mode for 'nmcli con up'
Jiří Klimeš [Wed, 9 May 2012 10:35:27 +0000]
cli: show progress in --pretty mode for 'nmcli con up'

We need to use a workaround for VPN connection state. There is a bug somewhere
causing that vpn-state-changed signal is not issued on active VPN connection.
Debugging showed that D-Bus PropertiesChanged and VpnStateChanged signals are
not processed properly. That's why libnm-glib's VPN connection object is not
updated. The issue may lie in libnm-glib or even in dbus-glib.
I wasn't able to get VpnStateChanged signal via dbus-glib
(dbus_g_proxy_add_signal() and dbus_g_proxy_connect_signal()), however received
the signal successfully using GDBus.

Until the issue is analyzed and fixed, we need to ask for VPN state of active
VPN connection every second in order to show progress and exit correctly.

8 years agocli: show progress in --pretty mode for 'nmcli dev disconnect'
Jiří Klimeš [Thu, 3 May 2012 09:54:52 +0000]
cli: show progress in --pretty mode for 'nmcli dev disconnect'

8 years agoexamples: add an example system settings plugin
Dan Williams [Mon, 7 May 2012 20:19:09 +0000]
examples: add an example system settings plugin

8 years agowifi: attempt to use same kernel API wpa_supplicant does (bgo #675017)
Dan Williams [Fri, 4 May 2012 19:26:10 +0000]
wifi: attempt to use same kernel API wpa_supplicant does (bgo #675017)

Some drivers (ipw2x00) support capabilities reporting via nl80211 but
absolutely nothing else.  NM was only checking for capabilities
when deciding whether or not to use nl80211 to communicate with the
driver for associated AP, signal strength, and channel info, and that
clearly fails with half-implementations of nl80211 in the kernel.

Instead, match the logic that wpa_supplicant uses to determine whether
to stick with nl80211 or fall back to WEXT.  For these drivers
NM will now fall back to WEXT and should return to the behavior we
had with 0.9.2 for these devices.

8 years agowifi: work around some scan failures at startup
Dan Williams [Wed, 2 May 2012 22:16:35 +0000]
wifi: work around some scan failures at startup

mac80211 drivers don't like being asked to scan when they are already
scanning, and it's pretty impossible to not race with internal
supplicant scanning.  NM requests a scan immediately after the
supplicant interface gets created, and that scan request usually
succeeds.  But since the supplicant's scan request method returns
when the kernel *starts* the scan, not when the scan is finished,
a second scan that NM would immediately request in
request_wireless_scan() would often fail as the card was already

The second scan was requested immediately becuase the SCAN_INTERVAL_MIN
was zero, which was set to zero to intentionally request two scans
to work around drivers that would fail the first scan because they
are stupid.

Well, let's just penalize stupid drivers by *possibly* making the
initial connection take a few more seconds due to the change of
SCAN_INTERVAL_MIN.  But what we're really doing here is not asking
for the second scan right after the first one is requested, since
that will almost always fail for most drivers, but request the
second one after the supplicant says the scan is done.

Second, if for some reason the supplicant reports that the scan failed,
don't make the next scan take longer; just queue it up without backing
off so we can retry the scan sooner.

8 years agowifi: don't report supplicant interface is READY until we've read properties
Dan Williams [Wed, 2 May 2012 18:04:23 +0000]
wifi: don't report supplicant interface is READY until we've read properties

NMDeviceWifi and a few other things expect the interface will
move from STARTING to READY and then on to other states.  But the
state was getting set to the actual supplicant interface state
immediately when the first properties were read (which include
the State property) and thus the READY state got bypassed.  But
we also want to read stuff like the capabilities before letting
the interface be used.

So first, ensure the supplicant interface object actually uses the
READY state like its callers expect, and second, don't set the
READY state until we actually know what we need to know about it.

8 years agowifi: probe-scan for hidden SSIDs
Dan Williams [Wed, 2 May 2012 16:41:47 +0000]
wifi: probe-scan for hidden SSIDs

8 years agolibnm-util: add 'hidden' property to the wireless setting
Dan Williams [Wed, 2 May 2012 16:40:32 +0000]
libnm-util: add 'hidden' property to the wireless setting

Used as a hint to indicate the network is not broadcasting the SSID
and that workarounds should be used for more reliable connection.

8 years agocore: pass connection provider to devices
Dan Williams [Wed, 2 May 2012 15:28:16 +0000]
core: pass connection provider to devices

8 years agocore: add connection provider interface
Dan Williams [Wed, 2 May 2012 15:25:58 +0000]
core: add connection provider interface

Allows better encapsulation of the functionality of the NMSettings
object that we want to expose to the device class.  They don't need
the whole object so to keep things simple and contained we'll just
give them a smaller interface to use.

8 years agowifi: cache number of available scan SSIDs
Dan Williams [Tue, 1 May 2012 22:59:35 +0000]
wifi: cache number of available scan SSIDs

Which we'll use later for better handling of non-broadcasting
networks by probing for them.

8 years agorelease: update NEWS
Dan Williams [Tue, 1 May 2012 17:59:11 +0000]
release: update NEWS

8 years agotrivial: fix distcheck in libnm-glib
Dan Williams [Mon, 30 Apr 2012 21:19:46 +0000]
trivial: fix distcheck in libnm-glib

8 years agoman: document 'nmcli nm wimax' in nmcli's man page
Jiří Klimeš [Mon, 30 Apr 2012 11:50:15 +0000]
man: document 'nmcli nm wimax' in nmcli's man page

8 years agocli: add a command for listing permissions - nmcli nm permissions
Jiří Klimeš [Mon, 30 Apr 2012 09:50:26 +0000]
cli: add a command for listing permissions - nmcli nm permissions

8 years agoman: make nmcli man page more readable
Jiří Klimeš [Mon, 30 Apr 2012 09:02:28 +0000]
man: make nmcli man page more readable

There are a few changes making the text less awkward after a native speaker's

8 years agocli: trivial, fix up spacing
Jiří Klimeš [Sat, 28 Apr 2012 20:54:02 +0000]
cli: trivial, fix up spacing

8 years agocli: add 'connect to SSID' feature: nmcli dev wifi connect <SSID> ...
Jiří Klimeš [Sat, 28 Apr 2012 21:32:21 +0000]
cli: add 'connect to SSID' feature: nmcli dev wifi connect <SSID> ...

This is similar to clicking a Wi-Fi network's SSID in a GUI applet.
The command does this:
- creates new connection (fills the user data specified via options, the
  connection is then completed with default parameters by NM)
- and then activates the connection on a Wi-Fi device.

WPA-Enterprise is not supported as it requires a plethora of parameters and
they can't be obtained automatically.
Also, the created connection uses 'auto' IP method, which means that if the
Wi-Fi network doesn't support DHCP, the connection will albeit be created,
however the activation will fail (IP configuration won't be available).

8 years agocore: ensure carrier is always on for devices that don't support detection (rh #816719)
Dan Williams [Sat, 28 Apr 2012 16:48:01 +0000]
core: ensure carrier is always on for devices that don't support detection (rh #816719)

We broke this when splitting NMDeviceWired out of NMDeviceEthernet.

8 years agopo: updated Lithuanian translation (bgo #675020)
Aurimas Černius [Sat, 28 Apr 2012 16:31:14 +0000]
po: updated Lithuanian translation (bgo #675020)

8 years agolibnm-glib: fix build on older glib without g_clear_object()
Dan Williams [Fri, 27 Apr 2012 20:03:29 +0000]
libnm-glib: fix build on older glib without g_clear_object()

8 years agocore: log whether WEXT is enabled or not (bgo #674650)
Dan Williams [Thu, 26 Apr 2012 18:38:41 +0000]
core: log whether WEXT is enabled or not (bgo #674650)

Now that we've encountered this twice with distros disabling WEXT
but apparently not realizing it kills staging and out-of-kernel
drivers like wl.o, make it a log message so we don't have to go
hunting for build-time logfiles.

8 years agocore: replace strcpy() with g_strlcpy()
Dan Winship [Thu, 26 Apr 2012 13:25:58 +0000]
core: replace strcpy() with g_strlcpy()

When copying device names into ioctl structs, we know that the device
names are of valid length, so we were using strcpy(). But you can't
prove that they're short enough just looking at the local code, so
some code analysis tools warn about a potential buffer overflow.. So
use g_strlcpy() instead.

8 years agoifcfg-rh: fix vlan DEVICE parsing
Dan Winship [Wed, 25 Apr 2012 18:40:04 +0000]
ifcfg-rh: fix vlan DEVICE parsing

A vlan DEVICE name must be either $(OTHERDEVICE).$(VLAN_ID) or
vlan$(VLAN_ID). Enforce that. In particular, don't:
(a) crash if the name has no "." and doesn't start with "vlan",
(b) loop forever if the $(VLAN_ID) part is non-numeric, or
(c) silently ignore non-numberic characters after the $(VLAN_ID).

8 years agolibnm-glib: add "object-creation-failed" signal to NMObject
Jiří Klimeš [Tue, 24 Apr 2012 14:23:27 +0000]
libnm-glib: add "object-creation-failed" signal to NMObject

The signal is private for libnm-glib and should not be used externally.
It is emitted when there's an error while creating an object.
In addition, this commit makes use of the signal in NMClient to ensure
that the callbacks are always called for nm_client_activate_connection()
and nm_client_add_and_activate_connection().

8 years agocore: notify that "active-connection" property changed on NMDevice
Jiří Klimeš [Tue, 24 Apr 2012 14:27:00 +0000]
core: notify that "active-connection" property changed on NMDevice

This is necessary so that PropertiesChanged D-Bus signal is properly

8 years agobuild: report whether WEXT is enabled or not (bgo #674650)
Dan Williams [Tue, 24 Apr 2012 18:07:49 +0000]
build: report whether WEXT is enabled or not (bgo #674650)

8 years agolibnm-glib: ensure object cache is cleared when NM stops (bgo #674473)
Dan Williams [Mon, 23 Apr 2012 22:07:18 +0000]
libnm-glib: ensure object cache is cleared when NM stops (bgo #674473)

Otherwise if a client holds references to the objects (or in the
JavaScript case, uses deferred garbage collection) they'll still
be in the cache when NM restarts, and the old object may have the
same path as some new object, which isn't good.

8 years agolibnm-glib: discard devices and active connections when NM goes down
Dan Winship [Mon, 23 Apr 2012 16:20:14 +0000]
libnm-glib: discard devices and active connections when NM goes down

When NMClient changes state to "not running", don't just unref all the
devices and connections: emit notify::active-connections and
device-removed signals too, so the app will drop its copies of them.

8 years agolibnm-glib: NULL out priv fields on dispose()
Dan Winship [Mon, 23 Apr 2012 15:02:48 +0000]
libnm-glib: NULL out priv fields on dispose()

In some situations, objects might get used after being disposed, so
clear out their various priv fields so we don't try to access unreffed
objects, freed strings, etc.

8 years agolibnm-glib: protect against potentially NULL changed property values (rh #808784)
Dan Williams [Mon, 23 Apr 2012 19:30:42 +0000]
libnm-glib: protect against potentially NULL changed property values (rh #808784)

No idea *why* they're NULL, unless perhaps that dbus-glib can't demarshal
the variants for some reason, but until we know why at least log the
problem so we know what properties the issue might affect.

8 years agolibnm-glib: ensure NMRemoteConnection signals are disconnected (bgo #674484) (lp...
Dan Williams [Mon, 23 Apr 2012 18:40:43 +0000]
libnm-glib: ensure NMRemoteConnection signals are disconnected (bgo #674484) (lp:949743)

If a client keeps the connection around after NMRemoteSettings is done
with it (and has emitted 'removed' for that connection) then the
RemoteSettings object was still registered to receive signals for
that connection.  To prevent clients from being able to screw up
the RemoteSettings, disconnect any signals it may be listening for
when the connection is removed.  (it should be doing that anyway)

8 years agotrivial: fix spacing
Dan Williams [Fri, 20 Apr 2012 14:57:22 +0000]
trivial: fix spacing

8 years agocore: don't fight with the kernel over the default IPv6 route
Dan Winship [Thu, 19 Apr 2012 18:27:12 +0000]
core: don't fight with the kernel over the default IPv6 route

The kernel wants there to be a default route over every RA-ed IPv6
interface, and it gets confused and annoyed if we remove that default
route and replace it with our own (causing it to effectively drop all
further RAs on the floor, which is particularly bad if some of the
information in the earlier RA had an expiration time).

So, rather than replacing the kernel's default route(s), just add an
additional one of our own, with a lower (ie, higher priority) metric.

8 years agocore: improve handling of POSIX signals using sigwait() (rh #739836)
Jiří Klimeš [Mon, 16 Apr 2012 11:30:53 +0000]
core: improve handling of POSIX signals using sigwait() (rh #739836)

There are multiple ways how to handle standard unix signals. They work quite
well for a single-threaded application. However, signal handling in a multi-
threaded app becomes tricky. And, the most safe way is to use sigwait() function
in a dedicated thread, which allows us to process the signals synchronously and
thus avoid various nasty problems.

A few useful links:,2

8 years agoifnet: do not call g_strv_length() on NULL
Jiří Klimeš [Thu, 12 Apr 2012 11:26:22 +0000]
ifnet: do not call g_strv_length() on NULL

8 years agoifnet: fix quote handling for global data (bgo #673548)
Mu Qiao [Thu, 5 Apr 2012 02:12:37 +0000]
ifnet: fix quote handling for global data (bgo #673548)

8 years agowifi: check the driver reports any encryption caps with nl80211 (bgo #673717)
Mathieu Trudel-Lapierre [Thu, 12 Apr 2012 10:01:28 +0000]
wifi: check the driver reports any encryption caps with nl80211 (bgo #673717)

Some drivers, such as ipw2200 doesn't report any encryption with newer kernels.
See also

8 years agoFix a few misc issues noticed by Coverity
Dan Winship [Thu, 5 Apr 2012 17:30:09 +0000]
Fix a few misc issues noticed by Coverity

8 years agopo: updated Swedish translation (bgo #673234)
Daniel Nylander [Tue, 3 Apr 2012 13:47:43 +0000]
po: updated Swedish translation (bgo #673234)

8 years agopo: updated Esperanto translation (bgo #673353)
Kristjan SCHMIDT [Tue, 3 Apr 2012 13:39:22 +0000]
po: updated Esperanto translation (bgo #673353)

8 years agopo: updated Galician translation (bgo #672597)
Fran Diéguez [Tue, 3 Apr 2012 13:31:20 +0000]
po: updated Galician translation (bgo #672597)

8 years agoifcfg-rh: clear MACADDR before writing it in wired setting (bgo #672646)
Jiří Klimeš [Tue, 3 Apr 2012 12:57:31 +0000]
ifcfg-rh: clear MACADDR before writing it in wired setting (bgo #672646)

Else it's not possible to delete Cloned MAC (e.g. in the editor).

8 years agolibnm-glib: initialize GError, else invalid free() crash can occur (rh #809123)
Jiří Klimeš [Mon, 2 Apr 2012 14:37:55 +0000]
libnm-glib: initialize GError, else invalid free() crash can occur (rh #809123)

8 years agotrivial: whitespace fixes
Jiří Klimeš [Mon, 2 Apr 2012 11:08:19 +0000]
trivial: whitespace fixes

8 years agoRevert "libnm-glib: initialize NMRemoteSettings in nm_remote_settings_new() (rh ...
Jiří Klimeš [Mon, 2 Apr 2012 10:34:36 +0000]
Revert "libnm-glib: initialize NMRemoteSettings in nm_remote_settings_new() (rh #806664)"

This reverts commit dd0460697c4e281fe277b53916d5251332e1aafc.

The commit dd0460697c4e281fe277b53916d5251332e1aafc make nm_remote_settings_new()
create the NMRemoteSettings object synchronously. It fixed getting properties,
but undid the previous ability to initialize the object asynchronously.
It can be reverted now, because a4f450aa0bf087453a8d605db81a83368cbe3b0a commit
ensure initialization in get_property() calls.

8 years agocore: call is_adhoc_wpa() only after we check '802-11-wireless' setting
Jiří Klimeš [Mon, 2 Apr 2012 10:28:05 +0000]
core: call is_adhoc_wpa() only after we check '802-11-wireless' setting

This prevents assertion while checking a connection that is not a wireless one.

8 years agopo: updated Swedish translation (bgo #671096)
Daniel Nylander [Fri, 30 Mar 2012 11:17:11 +0000]
po: updated Swedish translation (bgo #671096)

8 years agopo: updated Slovenian translation (bgo #671775)
Matej Urbančič [Fri, 30 Mar 2012 11:09:57 +0000]
po: updated Slovenian translation (bgo #671775)

8 years agoppp: don't use struct ifpppstatsreq that was removed from linux/ip_ppp.h
Jiří Klimeš [Wed, 28 Mar 2012 14:42:24 +0000]
ppp: don't use struct ifpppstatsreq that was removed from linux/ip_ppp.h

in recent kernels.

We can use ifreq and ppp_stats structures separately. They needn't have to
to be packed in a structure.

8 years agolibnm-glib: more ensure_inited() fixing
Dan Winship [Wed, 28 Mar 2012 13:06:12 +0000]
libnm-glib: more ensure_inited() fixing

We need to do _nm_object_ensure_inited() /
_nm_remote_settings_ensure_inited() from the get_property()
implementations; in most cases, get_property() just calls another
accessor method (which will call _nm_object_ensure_inited()), but in a
few places, it reads priv->whatever directly, so we need to make sure
that it's valid.

8 years agolibnm-glib: initialize NMRemoteSettings in nm_remote_settings_new() (rh #806664)
Jiří Klimeš [Tue, 27 Mar 2012 20:36:55 +0000]
libnm-glib: initialize NMRemoteSettings in nm_remote_settings_new() (rh #806664)

The object was not initialized after creation in nm_remote_settings_new(). This
was a regression caused by 762df85234e7a042a2a5d31053e6cc273ae3e2ec.

8 years agoifupdown: add missing test18-wired-static-verify-ip6 to
Jiří Klimeš [Tue, 27 Mar 2012 13:55:21 +0000]
ifupdown: add missing test18-wired-static-verify-ip6 to

8 years agolibnm-glib: ensure bindings-created NMClient object work (rh #802536)
Jiří Klimeš [Tue, 27 Mar 2012 12:38:48 +0000]
libnm-glib: ensure bindings-created NMClient object work (rh #802536)

Most of the stuff was done by 762df85234e7a042a2a5d31053e6cc273ae3e2ec.
But to allow this piece of code:

from gi.repository import NMClient
nmclient = NMClient.Client()
print nmclient.get_active_connections()

we also need to set "dbus-path" property in NMClient constuctor(),
else parent NMObject is not properly constructed.

8 years agoFix format string vulnerability in verify ()
Michael Biebl [Sat, 24 Mar 2012 22:05:41 +0000]
Fix format string vulnerability in verify ()

which caused a build failure when compiling with -Werror=format-security

8 years agodocs: fixups for new settings
Dan Williams [Sat, 24 Mar 2012 00:01:41 +0000]
docs: fixups for new settings

8 years agorelease: bump version to
Dan Williams [Fri, 23 Mar 2012 20:55:59 +0000]
release: bump version to

8 years agolibnm-glib: bump soname minor
Dan Williams [Fri, 23 Mar 2012 20:55:36 +0000]
libnm-glib: bump soname minor

8 years agolibnm-util: bump soname minor
Dan Williams [Fri, 23 Mar 2012 20:55:21 +0000]
libnm-util: bump soname minor

8 years agorelease: update NEWS
Dan Williams [Fri, 23 Mar 2012 20:11:02 +0000]
release: update NEWS

8 years agosettings: quiet warning when checking for AdHoc WPA connections
Dan Williams [Fri, 23 Mar 2012 14:59:20 +0000]
settings: quiet warning when checking for AdHoc WPA connections

8 years agocore: suppress pointless log message when route already exists (lp:958519)
Dan Williams [Thu, 22 Mar 2012 21:22:48 +0000]
core: suppress pointless log message when route already exists (lp:958519)

8 years agoTODO: remove bridging/bonding and InfiniBand
Dan Winship [Thu, 22 Mar 2012 19:50:43 +0000]
TODO: remove bridging/bonding and InfiniBand

Bonding and InfiniBand are done. Bridging isn't, but after removing
the bonding and generic infrstructure parts of that section, there
wasn't really enough left to be worth keeping.

8 years agocore: do a better job of applying bond configuration
Dan Winship [Tue, 20 Mar 2012 15:16:01 +0000]
core: do a better job of applying bond configuration

Reset all known bond options to their default values, not just the
ones that NMSettingBond allows overriding. Also, remove any bond
slaves that were already attached to the bond before we managed it.

Only update bond parameters that need to be updated. In particular,
setting either arp_interval or miimon to 0 has the side effect of also
setting the other one to 0, so don't do that if it's already 0.

Fix the handling of arp_ip_target; the sysfs arp_ip_target node does
not work the same way as the ifcfg BONDING_OPTS line (which is what
the code was assuming before).

8 years agolibnm-util: improve NMSettingBond:verify()
Dan Winship [Tue, 20 Mar 2012 13:39:57 +0000]
libnm-util: improve NMSettingBond:verify()

NM_SETTING_BOND_ERROR_MISSING_OPTION error codes so we can better
distinguish errors in different options, and add checks for various
incompatible sets of options.

8 years agolibnm-util: fix an NMSettingBond bug
Dan Winship [Thu, 22 Mar 2012 16:39:16 +0000]
libnm-util: fix an NMSettingBond bug

NMSettingBond sets the "miimon" option to "100" by default, but this
means that when reading in a saved configuration with "arp_interval"
set, it would end up with both "miimon" and "arp_interval" set, which
is invalid. Fix this by clearing "miimon" if "arp_interval" is set,
and vice versa.

8 years agocore: fix NMDeviceBond:dispose() to chain up
Dan Winship [Tue, 20 Mar 2012 17:06:22 +0000]
core: fix NMDeviceBond:dispose() to chain up

8 years agowifi: work around more wl.o stupidity
Dan Williams [Thu, 22 Mar 2012 16:50:11 +0000]
wifi: work around more wl.o stupidity

Sometimes returns 0 for the current frequency when the radio is
active.  WTF?

8 years agoip6: fix setting default route with libnl3 (bgo #668286)
Dan Williams [Thu, 22 Mar 2012 05:41:53 +0000]
ip6: fix setting default route with libnl3 (bgo #668286)

libnl3 wants a destination address when setting a route, so just hand
it '::' with a address len of 0 so we don't get -NLE_MISSING_ATTR
when trying to set the IPv6 default route.

8 years agotrivial: formatting fixes
Dan Williams [Thu, 22 Mar 2012 03:58:00 +0000]
trivial: formatting fixes

8 years agofirewall: set interface zone before IP configuration (rh #805405)
Dan Williams [Wed, 21 Mar 2012 20:03:23 +0000]
firewall: set interface zone before IP configuration (rh #805405)

We need to set the interface's firewall zone before we kick off
any sort of IP configuration, so that rules for stuff like
DHCP are already handled by the time that these services are started.

8 years agolibnm-glib: ensure bindings-created objects work as expected (rh #802536)
Dan Williams [Wed, 21 Mar 2012 17:37:39 +0000]
libnm-glib: ensure bindings-created objects work as expected (rh #802536)

Bindings (like GObject Introspection) almost always create objects
using g_object_new() by default and don't use our helper functions
like nm_client_new().  Thus we need to make sure that if the
object is created in that way, any property accesses or functions
that return properties ensure that the object is fully initialized,
which is what the _new() functions were supposed to do.  In one
case in NMClient that was missing (getting active connections)
and wasn't happening at all in NMRemoteSettings, which are our two
entry points into libnm-glib.

This allows this python+GI sequence to return the expected active
connection list:

from gi.repository import NMClient
nmclient = NMClient.Client(dbus_path='/org/freedesktop/NetworkManager')
active = nmclient.get_active_connections()

where previously it returned an empty list because the NMClient
wasn't fully initialized by the time nm_client_get_active_connections()
was called.

8 years agomobile: ensure IPv4 timeout fails activation
Dan Williams [Wed, 21 Mar 2012 04:21:17 +0000]
mobile: ensure IPv4 timeout fails activation

With the switch to IPv4 being allowed to fail by default we need
to clean up this old code a bit.  PPP failure during IP config
should trigger a timeout, and the core code will handle whether
to fail the device completely or not.  But if we got a valid IPv4
config and PPP failed later, the device gets failed.  Previously
the device would just sit in IP_CONFIG state because now IPv4
defaults may-fail to TRUE, and when PPP failed the
nm_device_ip_config_should_fail() check would obviously not pass.

8 years agoutils: override VPN plugin's never-default when ignoring auto routes (rh #804563)
Jiří Klimeš [Tue, 20 Mar 2012 16:17:49 +0000]
utils: override VPN plugin's never-default when ignoring auto routes (rh #804563)

Setting never-default ito TRUE when VPN server provides routes was done

8 years agowifi: make sure we're connected to netlink before using it
Dan Williams [Mon, 19 Mar 2012 21:09:46 +0000]
wifi: make sure we're connected to netlink before using it

This should fix the warning "failed to allocate link cache" when a
new device is added.  It doesn't affect WiFi operation, and the
code would fall back to non-nl80211 mechanisms of detecting whether
a device was wifi or not, so it corrects this check and quiets the
error message.

8 years agolibnm-glib: add 'registered' property for NMSecretAgent
Dan Williams [Mon, 19 Mar 2012 18:24:28 +0000]
libnm-glib: add 'registered' property for NMSecretAgent

So clients can track when the agent is actually registered and when
it's registration state changes.

8 years agorelease: bump version to (0.9.4-rc1)
Dan Williams [Mon, 19 Mar 2012 15:11:33 +0000]
release: bump version to (0.9.4-rc1)

8 years agokeyfile: fix testcases after InfiniBand transport-mode default change
Mathieu Trudel-Lapierre [Mon, 19 Mar 2012 15:10:36 +0000]
keyfile: fix testcases after InfiniBand transport-mode default change

8 years agowifi: disable Ad-Hoc WPA connections (lp:905748)
Dan Williams [Fri, 16 Mar 2012 22:56:32 +0000]
wifi: disable Ad-Hoc WPA connections (lp:905748)

The kernel is broken for Ad-Hoc WPA, and creates the connections
as open connections instead.  Yeah, eventually we can use
wpa_supplicant with RSN support, but for now we just have to
disable Ad-Hoc WPA because it's a problem to say we're creating
a protected network but then have the kernel not do that for
us.  Will be re-enabled once all the necessary bits have been

Note that Ad-Hoc WPA has been broken since at least 2.6.32 with
mac80211-based drivers, which is what most users will be using.

8 years agoinfiniband: fix missing sentinal in 04959c39aa162efbec39d410093c27c8d29c24ae
Dan Williams [Fri, 16 Mar 2012 20:20:58 +0000]
infiniband: fix missing sentinal in 04959c39aa162efbec39d410093c27c8d29c24ae

8 years agoAdd a workaround for a problem creating InfiniBand connections
Dan Winship [Fri, 16 Mar 2012 17:48:11 +0000]
Add a workaround for a problem creating InfiniBand connections

It is currently not possible to create a connection where the
connection-type-specific NMSetting has all default values. This hasn't
been a problem in the past because each type had at least one property
that either had no default value or had a default value that didn't
pass verify(). But NMSettingInfiniband didn't have that property, so
it's impossible to create an InfiniBand connection unless you change
the value of at least InfiniBand-specific setting.

Work around this for now by making the default value of
NMSettingInfiniband:transport-mode be NULL, so it needs to be

8 years agorelease: update NEWS
Dan Williams [Fri, 16 Mar 2012 15:48:02 +0000]
release: update NEWS

8 years agocore: treat missing IPv6 setting as AUTO
Dan Williams [Fri, 16 Mar 2012 14:43:16 +0000]
core: treat missing IPv6 setting as AUTO

Like IPv4, if the connection contains no IPv6 setting, perform
IPv6 addressing.  Since may-fail defaults to TRUE for IPv6, failure
should have no consequence.

8 years agolibnm-glib: add errors to device classes and nm_device_connection_compatible()
Jiří Klimeš [Wed, 14 Mar 2012 13:10:03 +0000]
libnm-glib: add errors to device classes and nm_device_connection_compatible()

Add nm_device_connection_compatible() that returns an error when it fails.
nm_device_connection_valid() does the same work except it doesn't set GError.

8 years agoifcfg-rh: fix testcase after 4abb300c967705b536cb11303f1c8296a6ca32f0
Dan Williams [Thu, 15 Mar 2012 22:56:34 +0000]
ifcfg-rh: fix testcase after 4abb300c967705b536cb11303f1c8296a6ca32f0

8 years agovpn: add a new field so VPN plugins can specify multiple domains
Evan Broder [Thu, 15 Mar 2012 21:56:26 +0000]
vpn: add a new field so VPN plugins can specify multiple domains

8 years agodnsmasq: allow proxying dnssec data (lp:946093)
Mathieu Trudel-Lapierre [Thu, 15 Mar 2012 21:58:19 +0000]
dnsmasq: allow proxying dnssec data (lp:946093)

This will allow DNSSEC data to be visible in browsers, which would otherwise
not be the case by default because of dnsmasq acting as a middle-man for

Otherwise, we have a regression from the libc resolver behavior.

8 years agogsm: pass the PPP auth preferences for STATIC and DHCP device use
Andrew Bird [Thu, 15 Mar 2012 21:19:43 +0000]
gsm: pass the PPP auth preferences for STATIC and DHCP device use

When using the either DHCP or STATIC IpMethods the modem manager
or device itself negotiates the PPP session so we need to pass
the authentication preferences through to MM.

        1/ Using a bitfield now that happens to match the Ericsson
in the lower orders so that it's far more tidy.
        2/ Devices that wish to utilise this should observe the
        If the bitfield doesn't exist in the dict, then MM uses the
modem default, if it does, MM tries to fulfill the request. If the
modem can only accept one value (Qualcomm-type devices accept only
None, PAP or CHAP with AT$QCPDPP) then MM picks the appropriate one
from the dict if only one of PAP or CHAP was given, otherwise we
default to PAP.

(dcbw: make enum a bitfield instead of the bit position)

8 years agocore: allow IPv4 to fail by default
Tore Anderson [Thu, 15 Mar 2012 20:58:24 +0000]
core: allow IPv4 to fail by default

(comments by dcbw)
This allows out-of-the-box connectivity on IPv6-only networks.
Once caveat is that connections where the user currently
expects no IPv4 connectivity to terminate the connection and
retry will no longer do so until IPv6 also times out, and if
that network where IPv4 is expected to fail also has an IPv6
router sending advertisements, the connection will succeed
instead of failing.  That can be resolved by setting the
right bit in the connection's config file; and it's expected
that the number of users who expect IPv4 failure on a
network with usable IPv6 connectivity is quite small
compared to the benefit of OOB IPv6 connectivity.

8 years agorelease: update NEWS
Dan Williams [Thu, 15 Mar 2012 20:19:22 +0000]
release: update NEWS

8 years agowifi: yet another nl80211 processing fix
Dan Williams [Thu, 15 Mar 2012 20:01:30 +0000]
wifi: yet another nl80211 processing fix

Make the meaning of done actually reflect what's happening,
and make sure that when we get an error in the error handler,
that the processing loop breaks out and returns that error.
This wasn't happening for Ad-Hoc connections, which apparently
return various errors for things, leading to blocking in
recv() in the kernel waiting for more data that would never
come, because we'd already gotten an error.

8 years agodocs: libnm-glib docs fixes for recent additions
Jiří Klimeš [Thu, 15 Mar 2012 10:15:56 +0000]
docs: libnm-glib docs fixes for recent additions

8 years agodocs: fix 'make distcheck' API doc xslt paths
Dan Williams [Wed, 14 Mar 2012 17:48:51 +0000]
docs: fix 'make distcheck' API doc xslt paths

Since all.xml is a built file these days, and will contain paths
relative to $(top_srcdir)/introspection even though it's not in
that directory, it seems we need to clue xsltproc into where the
other API XML files really are.

8 years agocore: fix carrier-triggered state re-entrancy issue (rh #800690)
Dan Williams [Wed, 14 Mar 2012 17:18:00 +0000]
core: fix carrier-triggered state re-entrancy issue (rh #800690)

Carrier checking can be synchronous, like when bringing up the device.
If the carrier changes as a result of the sync carrier state checking,
the code might change state.  Unfortunately brining up a device
happens in response to a state change already, and we can't change
state from within handlers for the device state change signal, so
we need to queue up the new state change that results from a
carrier change.

8 years agocore: fix queued state change debug message
Dan Williams [Tue, 13 Mar 2012 21:42:01 +0000]
core: fix queued state change debug message

Show the actual ID, not 0.