summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ifnet: fix use-after-free and refcounting of invalid changed connectionsdcbw/settings-fixesDan Williams2014-06-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | If a valid connection was updated and still valid, and then was updated and become invalid, the connection would not be properly removed from the ifnet plugin's priv->connections hash, and thus would never be disposed. This was due to using the direct pointer to the connection's UUID as the key for the hash table. When a connection is updated and its settings are replaced, the old UUID is freed and replaced with a new pointer. But the ifnet plugin hash table still uses the old (now freed) UUID pointer as the key. Thus when the connection is updated and becomes invalid, looking up the UUID in the hash table fails to find the connection, and the connection is not removed from the hash. This bug could cause a crash in some cases, if two keys of the GHashTable hashed to the same value, in which case GLib would call g_str_equal() on the freed pointer. Since code other than in the ifnet plugin replaces settings, we cannot be guaranteed that the pointer won't change. Avoid all that and just strdup() the UUID when using it as a key.
* example: fix possible invalid refcounting when changing connectionsDan Williams2014-06-121-4/+4
| | | | | | Since the pointer to the connection's path could change any time commit_changes() is called, it's not safe to use it as the hash table key directly. strdup it instead.
* keyfile: clean up logging connection verify errorsDan Williams2014-06-122-3/+2
| | | | | | | | | | | Prevents: Connection failed to verify: (unknown) invalid or missing connection property 'blah blah/foo bar' Simply removing the warning in reader.c is fine, because callers that care already log the warning themselves. Also make the warning in update_connection() the same as the warning in new_connection().
* keyfile: fix use-after-free and refcounting of invalid changed connectionsDan Williams2014-06-121-31/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | If a valid connection was updated and still valid, and then was updated and become invalid, the connection would not be properly removed from the keyfile plugin's priv->connections hash, and thus would never be disposed. This was due to using the direct pointer to the connection's UUID as the key for the hash table. When a connection is updated and its settings are replaced, the old UUID is freed and replaced with a new pointer. But the keyfile plugin hash table still uses the old (now freed) UUID pointer as the key. Thus when the connection is updated and becomes invalid, looking up the UUID in the hash table fails to find the connection, and the connection is not removed from the hash. This bug could cause a crash in some cases, if two keys of the GHashTable hashed to the same value, in which case GLib would call g_str_equal() on the freed pointer. Since code other than in the keyfile plugin replaces settings, we cannot be guaranteed that the pointer won't change. Avoid all that and just strdup() the UUID when using it as a key. (also collapses _internal_new_connection() into its only caller)
* build: remove libndp location in summary of ./configureThomas Haller2014-06-121-1/+0
| | | | | | | This is a left-over from the early days of libndp when the libarary was optionally a git-submodule of NetworkManager. Signed-off-by: Thomas Haller <thaller@redhat.com>
* nmcli autocomplete tab display : rename ERROR to ERRSwapnil Nagarkar2014-06-121-1/+1
| | | | | | | | | | The nmcli auto completation shows log levels as ERROR. But giving ERROR it does not work. This should renamed from ERROR to ERR https://mail.gnome.org/archives/networkmanager-list/2014-June/msg00019.html Signed-off-by: Thomas Haller <thaller@redhat.com>
* bluetooth: don't crash when switching off bluetooth (rh #1059494)Jiří Klimeš2014-06-121-1/+3
| | | | | | | | | | | | | When connected to a phone via bluetooth and turning bluetooth off on the computer NetworkManegr crashed due to accessing invalid device. Reproducer: - activate bluetooth on a computer and a phone - pair the devices - $ nmcli con add type blue con-name phone bt-type panu addr 00:17:EA:84:E7:41 - turn off bluetooth on computer (either with a hardware or software switch) https://bugzilla.redhat.com/show_bug.cgi?id=1059494
* nm-dispatcher: explicitly include gio/gio.hYegor Yefremov2014-06-111-0/+1
| | | | | | | | Without this header Buildroot's build complains about unknown types like GFile etc. Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
* ifcfg-rh: accept IPv6 routes without "via" in route6 file (bgo #697525)Jiří Klimeš2014-06-113-49/+35
| | | | | | | Routes without nexthop are legal and should be treated as a device route (direct route). https://bugzilla.gnome.org/show_bug.cgi?id=697525
* cli: don't accept prefix 0 for routesJiří Klimeš2014-06-111-2/+2
|
* cli: don't accept default route entries, NM handles the default route itselfJiří Klimeš2014-06-111-0/+8
|
* cli: allow missing next hop for routes (bgo #727615)Jiří Klimeš2014-06-113-105/+163
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=727615
* examples: add Python D-Bus and GI examples for updating IPv4 setting methodDan Williams2014-06-104-2/+182
|
* core: fix metrics of user-added routesDan Winship2014-06-106-10/+24
| | | | | | | | Adding a route with a metric of 0 to an IP4 or IP6 setting used to implicitly mean "use the default metric for the device", but this got broken by 722c9034. Fix that. https://bugzilla.gnome.org/show_bug.cgi?id=731402
* contrib/rpm: misc specfile updatesDan Williams2014-06-091-8/+10
| | | | | | | | | | Unify the obsoletes so they don't have to be changed every time. Clarify the WWAN package description, since it really applies to 2G/3G/4G devices, not just 3G. Also sync the glib and dbus-glib required versions with actual NetworkManager requirements from configure.ac.
* contrib/rpm: update NetworkManager description in spec fileJiří Klimeš2014-06-091-4/+5
| | | | Text by dcbw.
* libnm-util: don't append NULL in g_string_append()Jiří Klimeš2014-06-091-2/+2
|
* examples: fix get-active-connections-dbus-glib.c exampleJiří Klimeš2014-06-091-45/+18
|
* trivial: typo in the NEWSJiří Klimeš2014-06-091-1/+1
|
* platform: pass optional padding to _rebase_relative_time_on_now()Thomas Haller2014-06-071-10/+12
| | | | | | | | | | | | | | _rebase_relative_time_on_now() is used both by _address_get_lifetime()/nm_platform_ip[46]_address_sync() and the to_string() functions. In the latter case, we want to print the original value, without padding. Otherwise in the addresses are printed in the logs with an additional 5 seconds padding, which is confusing. For adding addresses in platform however, we still want to keep the padding. So pass it on as additional parameter. Signed-off-by: Thomas Haller <thaller@redhat.com>
* libnm-glib: don't use deprecated nm_access_point_get_hw_address()Thomas Haller2014-06-072-2/+2
| | | | | | | | | nm_access_point_get_hw_address() is already deprecated since pre-0.9.0-beta3 (f30e15a04d56a922f50e20c3c155a452d635a187). However, it also is defined as NM_DEPRECATED_IN_0_9_10, because there are no deprecated macros for previous version. Signed-off-by: Thomas Haller <thaller@redhat.com>
* platform: fix setting preferred time off-by-one in _init_ip_address_lifetime()Thomas Haller2014-06-071-1/+1
| | | | | | | This error was introduced only recently with commit 8310a039d81e3a316cf657aa9f28edabb9be125c. Signed-off-by: Thomas Haller <thaller@redhat.com>
* release: bump version to 0.9.11.0 (development)Thomas Haller2014-06-071-2/+2
|
* release: bump version to 0.9.9.95 (0.9.10-beta1)0.9.9.950.9.10-beta1Dan Williams2014-06-061-1/+1
|
* release: update NEWSDan Williams2014-06-061-0/+56
|
* libnm-glib-vpn: bump soname (1.1.0 -> 1.2.0) for API additionsDan Williams2014-06-061-1/+1
|
* libnm-glib: bump soname (4.7.0 -> 4.8.0) for API additionsDan Williams2014-06-061-1/+1
|
* libnm-util: bump soname (2.5.0 -> 2.6.0) for added APIDan Williams2014-06-061-1/+1
|
* dispatcher: don't warn on non-critical missing directory errorDan Williams2014-06-061-1/+1
|
* build: create dispatcher directories pre-down.d and pre-up.dThomas Haller2014-06-072-0/+4
| | | | Signed-off-by: Thomas Haller <thaller@redhat.com>
* libnm-util: fix an error noticed by coverityDan Williams2014-06-061-1/+1
|
* cli: fix a couple errors noticed by coverityDan Williams2014-06-061-23/+26
|
* core: suppress missing MAC address warning during connection matchingDan Williams2014-06-061-3/+6
| | | | One of the connetions may not have a MAC address, so don't expect one.
* cli: fix error parsing input arguments in non-interactive modeThomas Haller2014-06-061-2/+4
| | | | | | | | | | | | | | Causes the following failure: $ /bin/nmcli connection add type ethernet con-name connie ifname '*' (process:13883): GLib-CRITICAL **: g_strchug: assertion `string != NULL' failed (process:13883): GLib-CRITICAL **: g_strchomp: assertion `string != NULL' failed Error: invalid connection type; '' not among [generic, ...]. Regression introduced by commit bfb1200b4f279f83c113d048839044ad51ca2af7. Signed-off-by: Thomas Haller <thaller@redhat.com>
* build: update gitignore file after renaming nm-dispatcher.action executable ↵Thomas Haller2014-06-061-1/+1
| | | | | | to nm-dispatcher Signed-off-by: Thomas Haller <thaller@redhat.com>
* core: fix lag in NMManager:state moving to CONNECTED_GLOBALDan Winship2014-06-061-0/+20
| | | | | | | | | | | | Something changed at some point so that NMManager was now recomputing its state after a connection was activated, but before NMPolicy had decided whether to give that connection the default route, meaning NMManager would set the state to CONNECTED_LOCAL rather than CONNECTED_GLOBAL. Fix this by watching the active connection :default and :default6 properties too, so we do the right thing regardless of what order the AC properties change in.
* merge: add blocking dispatcher pre-up and pre-down events (bgo #387832)Dan Williams2014-06-0621-2738/+3044
|\ | | | | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=387832 https://bugzilla.redhat.com/show_bug.cgi?id=1048345 https://bugzilla.redhat.com/show_bug.cgi?id=982734
| * dispatcher: bump overall timeout to 10 minutes (rh #982734) (rh #1048345)Dan Williams2014-06-062-3/+7
| | | | | | | | | | Since NM now handles long-running dispatcher scripts better, allow them to run for really long times.
| * dispatcher: don't use NULL error domainsDan Williams2014-06-061-11/+11
| | | | | | | | | | glib doesn't like it, plus we don't use the error anyway, so just return the constant error string.
| * dispatcher: enhance debug loggingDan Williams2014-06-061-34/+52
| | | | | | | | | | | | Attach a request ID to every request, and print that out in the debug messages so you can see which results match up with which dispatcher requests.
| * dispatcher: use separate directories for pre-up/pre-down eventsDan Williams2014-06-064-31/+124
| | | | | | | | | | | | To ensure that NetworkManager does not block needlessly for events which have no scripts, require scripts that respond to blocking events to opt into the action.
| * core: block on dispatcher scripts when quittingDan Williams2014-06-063-16/+60
| | | | | | | | | | Like VPN connections, block on dispatcher scripts when quitting. Since the event loop is no longer running we can't schedule callbacks.
| * core: implement PRE_UP dispatcher actionsDan Williams2014-06-061-5/+35
| |
| * core: implement PRE_DOWN dispatcher actions (bgo #387832)Dan Williams2014-06-061-2/+39
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=387832
| * vpn: implement PRE_UP dispatcher actionsDan Williams2014-06-061-13/+38
| |
| * vpn: make DOWN dispatcher action block on quitDan Williams2014-06-061-9/+18
| | | | | | | | | | | | Since the event loop isn't running on quit, but we want to ensure that scripts can fully process the DOWN event, block on scripts completing when disconnecting the VPN when quitting.
| * vpn: implement PRE_DOWN dispatcher actions (bgo #387832)Dan Williams2014-06-064-49/+77
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=387832
| * dispatcher: convert action_to_string to a tableDan Williams2014-06-061-27/+16
| | | | | | | | | | Oddly, this increases the compiled+stripped size of the object file by 24 bytes (8296 -> 8320), but I think it produces more readable code.
| * dispatcher: add PRE_UP statesDan Williams2014-06-062-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This event runs before a connection/device is announced as "activated" or "connected", to enable scripts to do things before applications begin using connectivity. For example, this could be used to manage /etc/resolv.conf outside of NetworkManager and ensure that resolv.conf had correct information before DNS is used. Note that this is different than the Debian or Gentoo "pre-up" event used in /etc/network/interfaces, as that event runs before any L2 configuration has started. If we really need an event like that, we'll add it later as "lower-up".
| * dispatcher: robustify canceling dispatcher callsDan Williams2014-06-062-24/+51
| | | | | | | | | | | | | | | | Thomas pointed out that using the address of the DispatcherInfo structure as the dispatcher call ID could cause a mis-cancelation if malloc re-used the same block in the future. While the code should be correctly clearing call IDs after the callback runs or is canceled, just use numeric IDs to avoid potential crashses.