summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* live-vm: allow specifying the shared directorydcbw/live-vmDan Williams2015-01-282-5/+16
|
* live-vm: add test mode and --help supportDan Williams2015-01-283-21/+132
| | | | | | The test mode is intended for unit testing support, where NM is disabled by default and will be started by a test fixture inside the VM at the appropriate time.
* live-vm: change vertical resolution to 640Dan Williams2015-01-281-2/+2
| | | | Some monitors (laptops) can't fit 768.
* live-vm: add "--delete" option to nm-live-vm-bundle.shDan Williams2015-01-281-1/+3
| | | | Deletes the bundle after running.
* live-vm: update build optionsDan Williams2015-01-282-9/+28
|
* live-vm: use virtio for shared directoryDan Williams2015-01-282-2/+2
| | | | | | The VVFAT shared directory scheme didn't work reliably, for example not showing files written on the host in the guest and vice versa. Use the virtio scheme instead, which does work.
* ip6-config: remove the link-local address on address flushLubomir Rintel2015-01-283-5/+6
| | | | | | If it stays after device dispose a connection is assumed. https://bugzilla.redhat.com/show_bug.cgi?id=1184997
* contrib/rpm: add 10-ibft-plugin.conf config fileThomas Haller2015-01-283-1/+18
| | | | Taken from rhel-7.1 package
* libnm-core: coverity fixJiří Klimeš2015-01-281-1/+2
| | | | var_deref_op: Dereferencing null pointer "property->param_spec".
* Currently if we have two paired bluetooth devices,Dan Winship2015-01-271-0/+19
| | | | | | | | | | | | | nm_device_disambiguate_names() will disambiguate them by their hardware address. This is not very helpful, so detect this case and use the Bluetooth device name instead. This function is used by System Settings when showing the list of network devices. https://bugzilla.gnome.org/show_bug.cgi?id=740553 (Port of a libnm-gtk patch written by Ryan Lortie.)
* contrib: fix NetworkManager.spec after the dispatcher script changeDan Winship2015-01-271-0/+1
|
* NEWS: mention missing feature for 1.0Thomas Haller2015-01-271-1/+2
|
* dispatcher: fix ifcfg-rh example dispatcher script (rh #1160013)Dan Winship2015-01-272-5/+19
| | | | | | Routing table entries for a device get flushed when the device is deactivated, but rules table entries don't, so we have to flush them by hand.
* core: fix nm_ip_config_intersect() only to remove addresses, routes and gatewayThomas Haller2015-01-262-68/+8
| | | | | | Otherwise we remove the DNS configuration during platform events. Fixes: 557667df12fc05b76326d6406553985effeeb2ac
* device: schedule queued_ip_config_change() after constructing deviceThomas Haller2015-01-261-0/+3
| | | | | | | | | | | | | | | | During queued_ip_config_change(), we eventually call update_ip_config() and ip4_config_merge_and_apply(). These functions read the IP configuration from platform and setup the private ip4_config instance. Trigger this initialization after constructing the device to setup the IP configuration. Before, for unmanaged devices we would not call ip4_config_merge_and_apply() until the first platform change event. Note that in the worst case we do some unnecessary work due to this, because queued_ip_config_change() must already be robust to be called at any time.
* default-route: don't return devices without active connection as ↵Thomas Haller2015-01-261-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | best_config() or best_device() Since 0c136c1e2, we also track the default route for devices without active-connection (unmanaged). They must not be returned as best_config() or as best_device(), because the caller don't expect unmanaged devices here. This also gets closer to the original behavior of get_best_device() before merging default-route-manager in d4417e34606b1f08c361709ff9567055a1d6859e where we also would ignore devices depending on the state. This fixes an assertion when having an interface unmanaged and activating it externally: #0 0x00007ffff6806187 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55 #1 0x00007ffff6807dea in __GI_abort () at abort.c:89 #2 0x00007ffff6c0aec5 in g_assertion_message (domain=domain@entry=0x5332d5 "NetworkManager", file=file@entry=0x539460 "nm-default-route-manager.c", line=line@entry=1056, func=func@entry=0x539920 <__FUNCTION__.28934> "_ipx_get_best_config", message=message@entry=0x8c9cb0 "assertion failed: (req)") at gtestutils.c:2356 #3 0x00007ffff6c0af5a in g_assertion_message_expr (domain=domain@entry=0x5332d5 "NetworkManager", file=file@entry=0x539460 "nm-default-route-manager.c", line=line@entry=1056, func=func@entry=0x539920 <__FUNCTION__.28934> "_ipx_get_best_config", expr=expr@entry=0x53132f "req") at gtestutils.c:2371 #4 0x000000000049a196 in _ipx_get_best_config (self=<optimized out>, ignore_never_default=ignore_never_default@entry=1, out_ip_iface=out_ip_iface@entry=0x7fffffffd310, out_ac=out_ac@entry=0x0, out_device=0x0, out_vpn=0x7fffffffd318, vtable=0x7a0a00 <vtable_ip4>, vtable=0x7a0a00 <vtable_ip4>) at nm-default-route-manager.c:1056 #5 0x000000000049a3f6 in nm_default_route_manager_ip4_get_best_config (self=<optimized out>, ignore_never_default=ignore_never_default@entry=1, out_ip_iface=out_ip_iface@entry=0x7fffffffd310, out_ac=out_ac@entry=0x0, out_device=out_device@entry=0x0, out_vpn=out_vpn@entry=0x7fffffffd318) at nm-default-route-manager.c:1079 #6 0x00000000004b7518 in update_ip4_dns (self=0x7ecac0 [NMPolicy], out_vpn=0x7fffffffd318, out_device=0x0, out_ac=0x0, out_ip_iface=0x7fffffffd310, ignore_never_default=1) at nm-policy.c:390 #7 0x00000000004b7518 in update_ip4_dns (dns_mgr=0x8623a0 [NMDnsManager], policy=0x7ecac0 [NMPolicy]) at nm-policy.c:406 #8 0x00000000004b99d5 in device_ip4_config_changed (device=0x8844b0 [NMDeviceEthernet], new_config=0x908aa0 [NMIP4Config], old_config=0x908aa0 [NMIP4Config], user_data=0x7ecac0) at nm-policy.c:1260 #9 0x000000368f405d60 in ffi_call_unix64 () at /lib64/libffi.so.6 #10 0x000000368f4057d1 in ffi_call () at /lib64/libffi.so.6 #11 0x00007ffff6ee5b8c in g_cclosure_marshal_generic_va (closure=0x886a40, return_value=0x0, instance=0x8844b0, args_list=<optimized out>, marshal_data=0x0, n_params=2, param_types=0x87d3a0) at gclosure.c:1541 #12 0x00007ffff6ee5144 in _g_closure_invoke_va (closure=closure@entry=0x886a40, return_value=return_value@entry=0x0, instance=instance@entry=0x8844b0, args=args@entry=0x7fffffffd810, n_params=<optimized out>, param_types=0x87d3a0) at gclosure.c:831 #13 0x00007ffff6eff900 in g_signal_emit_valist (instance=0x8844b0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd810) at gsignal.c:3201 #14 0x00007ffff6f0014f in g_signal_emit (instance=instance@entry=0x8844b0, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3348 #15 0x000000000044a1f4 in nm_device_set_ip4_config (self=self@entry=0x8844b0 [NMDeviceEthernet], new_config=new_config@entry=0x9089a0 [NMIP4Config], default_route_metric=default_route_metric@entry=100, commit=commit@entry=0, reason=reason@entry=0x0) at devices/nm-device.c:5866 #16 0x000000000044a5af in ip4_config_merge_and_apply (self=self@entry=0x8844b0 [NMDeviceEthernet], config=config@entry=0x0, commit=commit@entry=0, out_reason=out_reason@entry=0x0) at devices/nm-device.c:3037 #17 0x000000000044b4fd in update_ip_config (self=self@entry=0x8844b0 [NMDeviceEthernet], initial=initial@entry=0) at devices/nm-device.c:6617 #18 0x000000000044bc39 in queued_ip_config_change (user_data=<optimized out>) at devices/nm-device.c:6688 #19 0x00007ffff6be4e1b in g_main_context_dispatch (context=0x7ba3a0) at gmain.c:3122 #20 0x00007ffff6be4e1b in g_main_context_dispatch (context=context@entry=0x7ba3a0) at gmain.c:3737 #21 0x00007ffff6be51b0 in g_main_context_iterate (context=0x7ba3a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808 #22 0x00007ffff6be54d2 in g_main_loop_run (loop=0x7ba460) at gmain.c:4002 #23 0x000000000043291d in main (argc=1, argv=0x7fffffffdef8) at main.c:442 Fixes: da708059dabb2854d11eed1a403398327b31535b
* logging: assert that NMLogDomains compiles to a 64 bit enumThomas Haller2015-01-261-0/+3
| | | | | | | | | Enum types larger then the native 'int' type are undefined behavior according to C standard. Assert that our compiler does the right thing. the expression that defines the value of an enumeration constant shall be an integer constant expression that has a value representable as an int
* wifi: reduce logging level for find_active_ap()Thomas Haller2015-01-261-12/+12
| | | | | | find_active_ap() is called repeatedly, which significantly spams WIFI:DEBUG logging. Downgrade those logging statements to TRACE level.
* platform: merge: branch 'lr/ipv6-tokens' (rh #1104689)Lubomir Rintel2015-01-269-10/+150
|\ | | | | | | | | | | | | | | | | This adds support for tokenised identifier use as specified in draft-chown-6man-tokenised-ipv6-identifiers-02 Internet Draft, enabled if there's a support for tokenised identifiers in libnl. https://bugzilla.redhat.com/show_bug.cgi?id=1104689 https://tools.ietf.org/html/draft-chown-6man-tokenised-ipv6-identifiers-02
| * platform: Add support for IPv6 tokenized identifiers on Linuxlr/ipv6-tokensLubomir Rintel2015-01-261-0/+34
| |
| * platform: refresh link cache when IPv6 tokenized identifier changesLubomir Rintel2015-01-261-2/+33
| |
| * build: Check for tokenized identifier support in libnl-route-3Lubomir Rintel2015-01-261-0/+7
| |
| * core: Use tokenized identifiers when constructing an addressLubomir Rintel2015-01-263-6/+42
| | | | | | | | | | | | We trigger a new solicitation upon seeing the new token. Kernel triggers one too, but that one is of no use to us, since the advertisement might arrive sooner than we learn about the token change.
| * platform: Add support for IPv6 tokenized identifiersLubomir Rintel2015-01-262-0/+29
| |
| * core: Add NMUtilsIPv6IfaceId to nm-types.hLubomir Rintel2015-01-262-2/+5
|/ | | | | We'd like to use it in nm-platform.h, but it's included by NetworkManagerUtils.h before the declaration occurs.
* po: update Polish (pl) translation (bgo #743500)Piotr Drąg2015-01-261-102/+175
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=743500
* manager: don't attempt to activate ipv6.method=shared connectionsLubomir Rintel2015-01-251-0/+10
| | | | | | | It would be nice if we supported IPv6 network sharing (maybe RFC 7278?), but we don't. Let's not attempt to bring it up, it would fail in stage3. https://bugzilla.redhat.com/show_bug.cgi?id=1183015
* build: replace `echo -n` by `printf '%s'` in configure.acThomas Haller2015-01-251-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=743480
* core: merge branch 'th/bgo740443_device_ip_changes'Thomas Haller2015-01-246-255/+627
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This branch brings three major changes: - when routes or addresses are removed externally, remove those entiries also from what we want to configure on the interface. That way, on the next commit, we will not re-add those externally removed entries. -- at least not unless the entries reappear due to an event such as a new DHCP lease. - the combined NMIPConfig object of a device which is also exposed via DBUS, will no longer contain those externally removed entries. The IP config really shows what is actually configured. - for default-routes, no longer enforce the default route even on managed devices. Only during commit phases, we might re-add/ remove a default route from a device, otherwise, pickup the default route (or its absence) as actually configured. https://bugzilla.gnome.org/show_bug.cgi?id=740443
| * device: always pickup externally configured default routes for a deviceThomas Haller2015-01-241-74/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even more eagerly pickup external default routes from the device. For assumed devices we already picked up the default route. (a) For assumed devices we already did not enforce the default route at all. Instead it was always picked up by from the actualy system configuration. Note that this is the case for assumed-generated connections and for assuming existing connections. That means that when NM assumes a connection at startup, it will never actively manage the default route on that interface. It will only react on what is present. (b) For managed devices that have by configuration no default route, still pick up the default route. That means, that even a device that is managed and never-default=yes, can have the default route -- if configured externally. (c) Only during a commit phase (i.e. when we have new configuraiton to be applied), we enforce the default route or its absence. (d) During any IP change event from platform, we again pickup whatever is present. That means if you remove the default route from a managed interface, NM will not re-add it until anything triggers (c). This also means, that during the commit phase, we add default routes as 'synced' to the default-route-manager, but the following event from platform, will change the route entry immediately to 'non-synced'. That is expected and correct.
| * device: better accept external IP changesThomas Haller2015-01-241-34/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When receiving IP changes via platform event, remove all missing addresses and routes from our internal configurations (such as wwan, vpn, dhcp). The effect is that on the next commit, those addresses and routes will not be re-added as they were explicitly removed by the user. However on a new DHCP lease or similar events, the addresses will be added anew. Another important improvement is that the NMIPxConfig of the active device reflects when addresses or routes get removed externally. Before we would continue to expose those entires although they were not actually configured on the device. https://bugzilla.gnome.org/show_bug.cgi?id=740443
| * device: require a direct route for IPv6 gatewayThomas Haller2015-01-241-2/+2
| | | | | | | | | | | | | | | | | | | | In the IPv4 case, we check whether we have a direct route to the gateway also by looking at the configured addresses/subnets. That is correct, because every IPv4 address also implies a subnet route. For IPv6, we explicitly add all subnet routes manually (noprefixroute), hence, we have a direct route exactly if we have it in our list. Regardless of the configured IPv6 prefixes.
| * device: refactor ipx_config_merge_and_apply()Thomas Haller2015-01-241-111/+136
| | | | | | | | No functional change, but restructure code to make it clearer(?).
| * core: add intersect() functions to NMIP?ConfigThomas Haller2015-01-244-0/+154
| |
| * core: refactor subtract() functions in NMIP?ConfigThomas Haller2015-01-242-123/+230
| | | | | | | | | | | | Factor out code of the nm_ip4_config_subtract() and nm_ip6_config_subtract() functions. The code can be reused in the following commit.
| * default-route: improve logging format for default route entriesThomas Haller2015-01-241-3/+3
|/ | | | | | The previous syntax (s/S for synced, n/N for never-default) is confusing. Indicate 'never-default' by '0', vs. '1'. Indicated synced/non-synced as '+sync' and '-sync'.
* vapi: add some missing device and setting typesDan Williams2015-01-232-0/+24
|
* team: fix teamd startup code (rh #1184923)Dan Winship2015-01-231-7/+4
| | | | | | | | | | | | | | | | | | Since 03a5a85d, NMDeviceTeam was trying to use priv->teamd_pid to decide whether a teamd_dbus_vanished() call indicated "teamd hasn't been started yet" or "teamd was previously started and has now exited". But this resulted in a race condition, where at startup, a device could call g_dbus_watch_name(), then launch teamd (causing teamd_pid to get set), and then have gdbus report that teamd hasn't been started yet before the newly-launched teamd managed to grab the bus name. Since teamd_pid would already be set when teamd_dbus_vanished() was called, it would decide that this meant "teamd was previously started and has now exited", so it would call teamd_cleanup(), killing the just-started teamd process. Fix this by having teamd_dbus_vanished() check priv->tdc instead, which doesn't get set until after the first teamd_dbus_appeared() call.
* dist: include manual page sourcesLubomir Rintel2015-01-231-8/+8
| | | | | | Ommittes by mistake with an errorneous substitution. https://mail.gnome.org/archives/networkmanager-list/2015-January/msg00066.html
* libnm: drop libdbus-glib from pkg-config fileLubomir Rintel2015-01-221-1/+1
| | | | | | libnm uses GIO DBus library instead. https://mail.gnome.org/archives/networkmanager-list/2015-January/msg00065.html
* device: adjust default route metric for BRIDGE device typeThomas Haller2015-01-221-1/+10
| | | | | | | | | | We forgot to include the BRIDGE, so that bridge devices got a default priority (route-metric) of 950 Add it between VLAN and MODEM type. Also return a different metric for UNKNOWN device types, but these priorities are not actually expected.
* core/trivial: fix documentation of nm_utils_uuid_generate_from_strings()Thomas Haller2015-01-221-2/+2
|
* merge: stop pppd before notifying ModemManager to disconnect (bgo #734347)Dan Williams2015-01-219-54/+523
|\
| * wwan: consolidate format of log messagesAleksander Morgado2015-01-212-14/+16
| |
| * wwan: wait for pppd to exit before relaying the port to ModemManagerAleksander Morgado2015-01-215-17/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ModemManager needs to have CLOCAL set in the TTY termios configuration, in order to notify the kernel that modem control lines are not in effect (e.g. so that a transition to LOW in the DCD input control line doesn't trigger a hangup in the TTY). pppd in the other hand, needs CLOCAL unset in order to have proper modem control lines in effect during the PPP session. So, when pppd starts it will store the original termios settings, and before exiting it will restore the original settings in the TTY. In other words, if CLOCAL was set before launching pppd, CLOCAL will be also set after pppd exits. Now, in order for this sequence to work correctly, NetworkManager also needs to make sure that ModemManager is notified about the disconnection only after pppd has really finished re-configuring the TTY. https://bugzilla.gnome.org/show_bug.cgi?id=734347 ---------------------- Once the patch is applied, we will be making sure that ModemManager is only notified about the disconnection AFTER pppd has fully exited: NetworkManager[27589]: <info> (ttyUSB2): device state change: activated -> deactivating (reason 'user-requested') [100 110 39] Terminating on signal 15 nm-pppd-plugin-Message: nm-ppp-plugin: (nm_phasechange): status 10 / phase 'terminate' nm-pppd-plugin-Message: nm-ppp-plugin: (nm_phasechange): status 8 / phase 'network' Connect time 0.3 minutes. Sent 56 bytes, received 0 bytes. nm-pppd-plugin-Message: nm-ppp-plugin: (nm_phasechange): status 5 / phase 'establish' nm-pppd-plugin-Message: nm-ppp-plugin: (nm_phasechange): status 11 / phase 'disconnect' Connection terminated. nm-pppd-plugin-Message: nm-ppp-plugin: (nm_phasechange): status 1 / phase 'dead' nm-pppd-plugin-Message: nm-ppp-plugin: (nm_exit_notify): cleaning up NetworkManager[27589]: <warn> pppd pid 27617 exited with error: pppd received a signal NetworkManager[27589]: <info> (ttyUSB2): modem state changed, 'connected' --> 'disconnecting' (reason: user-requested) NetworkManager[27589]: <info> (ttyUSB2): modem state changed, 'disconnecting' --> 'registered' (reason: user-requested) NetworkManager[27589]: <info> (ttyUSB2) modem deactivation finished NetworkManager[27589]: <info> (ttyUSB2): device state change: deactivating -> disconnected (reason 'user-requested') [110 30 39] NetworkManager[27589]: <info> (ttyUSB2): deactivating device (reason 'user-requested') [39]
| * wwan,modem: let disconnect() be an async operationAleksander Morgado2015-01-213-19/+67
| |
| * ppp-manager: new async stop() method to request stop and wait for it to completeAleksander Morgado2015-01-212-3/+116
| | | | | | | | | | This method doesn't prevent the original logic in which the child process was stopped when the last reference of the PPP manager was unref-ed.
| * device: new deactivate_async() method to be run during DEACTIVATING phaseAleksander Morgado2015-01-212-2/+80
|/ | | | | This method isn't run if NM is quitting; so the deactivate() method still needs to be implemented to handle sync disconnection requests.
* merge: add support for Wi-Fi powersave (bgo #739084)Dan Williams2015-01-2118-1/+236
|\
| * wifi: set wireless powersave for nl80211 devices when activateddcbw/wifi-powersaveMathieu Trudel-Lapierre2015-01-219-0/+94
| | | | | | | | | | | | Signed-off-by: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com> (fixups and WEXT implementation by dcbw)