summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fixup! bond: improve compatibility check of options and modesbg/bond-options-validate-bgo767776Thomas Haller2016-07-061-1/+1
|
* fixup! bond: use defines for sysfs attribute namesBeniamino Galvani2016-07-061-4/+4
|
* fixup! bond: fix default value for 'ad_actor_system' optionBeniamino Galvani2016-07-061-2/+0
|
* fixup! bond: improve compatibility check of options and modesBeniamino Galvani2016-07-061-14/+10
|
* bond: use defines for sysfs attribute namesBeniamino Galvani2016-07-061-41/+41
| | | | | | Previously we used defines for bond option names and used string literals for their attribute names in sysfs. But they are the same by definition so let's use defines also for attributes.
* bond: fix default value for 'ad_actor_system' optionBeniamino Galvani2016-07-062-1/+19
| | | | | | | | | | | Even if the 'ad_actor_system' option is only valid for the 802.3ad mode, the sysfs file is always present and has a default value of ''. But in 802.3ad mode the default value is '00:00:00:00:00:00'. Return the correct value in nm_setting_bond_get_option_default(). Furthermore, writing a empty string to the file will generate an error, don't do it.
* fixup! bond: improve compatibility check of options and modesBeniamino Galvani2016-07-061-43/+38
|
* bond: improve compatibility check of options and modesBeniamino Galvani2016-07-063-47/+119
| | | | | | | | | | | | | | | | We print an error when the write of a bond options fails as this is considered an effect of a wrong configuration (or a bug in the checks done by NM) that the user should notice. But not all options are supported in all bonding modes and so we ignore some unsupported options for the current mode to avoid populating logs with useless errors. Improve the code there by using a more generic approach and synchronize the mode/option compatibility table with kernel (file drivers/net/bonding/bond_options.c). https://bugzilla.gnome.org/show_bug.cgi?id=767776 https://bugzilla.redhat.com/show_bug.cgi?id=1352131
* device: don't try to generate ipv6ll address for disconnected devicesBeniamino Galvani2016-07-061-2/+3
| | | | | | | | | | | | | | | | | | | | | | | If the device is disconnected because it can't be assumed due to lack of IP configuration, don't try to generate an ipv6 link-local address, as this requires a connection. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 __GI_abort () at abort.c:89 #2 g_assertion_message (domain=domain@entry=0x5f41b4 "NetworkManager", file=file@entry=0x5ef9b5 "devices/nm-device.c", line=line@entry=831, func=func@entry=0x5f3220 <__FUNCTION__.37383> "nm_device_get_ip_iface_identifier", message=message@entry=0x1e86100 "assertion failed: (connection)") at gtestutils.c:2429 #3 g_assertion_message_expr (domain=domain@entry=0x5f41b4 "NetworkManager", file=file@entry=0x5ef9b5 "devices/nm-device.c", line=line@entry=831, func=func@entry=0x5f3220 <__FUNCTION__.37383> "nm_device_get_ip_iface_identifier", expr=expr@entry=0x5e65c6 "connection") at gtestutils.c:2452 #4 nm_device_get_ip_iface_identifier (self=self@entry=0x1e612a0, iid=iid@entry=0x7fffce40e3d0, ignore_token=ignore_token@entry=1) at devices/nm-device.c:831 #5 check_and_add_ipv6ll_addr (self=self@entry=0x1e612a0) at devices/nm-device.c:5983 #6 queued_ip6_config_change (user_data=0x1e612a0) at devices/nm-device.c:9489 #7 g_main_dispatch (context=0x1d3e060) at gmain.c:3154 #8 g_main_context_dispatch (context=context@entry=0x1d3e060) at gmain.c:3769 #9 g_main_context_iterate (context=0x1d3e060, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840 #10 g_main_loop_run (loop=0x1d3ab00) at gmain.c:4034 #11 main (argc=1, argv=0x7fffce40e6a8) at main.c:411 https://bugzilla.redhat.com/show_bug.cgi?id=1351633
* device: downgrade logging warning in nm_device_steal_connection()Thomas Haller2016-07-061-1/+1
| | | | | | | | | | <info> [1467793329.6313] device (veth-guest): Activation: starting connection 'my-wired' (ca058ec5-8a47-4e1e-b38e-962b71c4699e) <debug> [1467793329.6313] device[0x55af2884bf90] (veth-guest): activation-stage: schedule activate_stage1_device_prepare,2 (id 510) <warn> [1467793329.6314] device (veth-guest): disconnecting connection 'my-wired' for new activation request. <info> [1467793329.6315] device (veth-guest): state change: disconnected -> deactivating (reason 'new-activation') [30 110 60 A warning is too verbose. This is not an unusual condition, it's just that a new activation supersedes an other one.
* core/trivial: cleanup indention for property definitions in nm-ip[46]-config.cThomas Haller2016-07-062-105/+105
|
* wifi: cleanup type implementation of NMDeviceWifiThomas Haller2016-07-062-125/+117
| | | | | | | - make NMDeviceWifi and NMDeviceWifiClass internal, opaque structures - embed private data in NMDeviceWifi - implement GObject properties via NM_GOBJECT_PROPERTIES_DEFINE()
* wifi: fix missing pending-action-remove for "scan"Thomas Haller2016-07-061-11/+22
| | | | | | | <warn> [1467730406.7343] device (wlp3s0): add_pending_action (2): scan already pending file devices/nm-device.c: line 10443 (nm_device_add_pending_action): should not be reached Fixes: eed8fd2e43d244caa856d9993e750ff19ba62fd7
* wifi: minor cleanups for boolean variablesThomas Haller2016-07-061-3/+5
|
* libnm-core: ip-config: normalize may-fail for disabled IP methodsBeniamino Galvani2016-07-064-0/+82
| | | | | | | | | | | | | | Since commit 7d1709d7f649 ("device: check may_fail when progressing to IP_CHECK") NM correctly checks the may-fail properties to decide whether a connection must fail after the completion of IP configuration. But for ipv4.method=disabled and ipv6.method=ignore the IP configuration is always considered failed and thus setting may-fail=no results in a connection that can never succeed. To prevent such wrong configuration, force may-fail to TRUE for those methods during connection normalization. https://bugzilla.redhat.com/show_bug.cgi?id=1334884
* platform/tests: fix link testsThomas Haller2016-07-051-7/+2
| | | | Fixes: 6f31f878713eb0c23f19bd342c35f05841399b1d
* core: merge branch 'th/avoid-wrong-warnings-rh1323571'Thomas Haller2016-07-0516-187/+272
|\ | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1323571
| * device: tune down warning about failure to set userspace IPv6LL on ↵Thomas Haller2016-07-054-15/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | non-existing device When a device gets removed externally, we still try to clear userspace IPv6LL address handling. That fails, due to non-existing device. Such a failure should not be logged as warning. <debug> [1467723214.2078] device[0x558c59335ca0] (enp0s25): disposing <debug> [1467723214.2079] device[0x558c59335ca0] (enp0s25): remove_pending_action (0): 'dhcp6' not pending (expected) <debug> [1467723214.2079] device[0x558c59335ca0] (enp0s25): remove_pending_action (0): 'autoconf6' not pending (expected) <debug> [1467723214.2079] device[0x558c59335ca0] (enp0s25): will disable userland IPv6LL <debug> [1467723214.2079] platform-linux: link: change 20: user-ipv6ll: set IPv6 address generation mode to eui64 <trace> [1467723214.2080] platform-linux: delayed-action: schedule wait-for-nl-response (seq 92, timeout in 0.199998611) <trace> [1467723214.2080] platform-linux: delayed-action: schedule refresh-link (ifindex 20) <trace> [1467723214.2080] platform-linux: delayed-action: handle refresh-link (ifindex 20) <debug> [1467723214.2080] platform-linux: do-request-link: 20 <trace> [1467723214.2080] platform-linux: netlink: recvmsg: new message type 2, seq 92 <debug> [1467723214.2080] platform-linux: netlink: recvmsg: error message from kernel: No such device (19) for request 92 <trace> [1467723214.2081] platform-linux: delayed-action: complete wait-for-nl-response (seq 92, timeout in 0.199895684, failure 19 (No such device)) <trace> [1467723214.2081] platform-linux: delayed-action: schedule wait-for-nl-response (seq 93, timeout in 0.199999306) <trace> [1467723214.2081] platform-linux: delayed-action: handle wait-for-nl-response (any) <trace> [1467723214.2081] platform-linux: netlink: recvmsg: new message type 2, seq 93 <debug> [1467723214.2081] platform-linux: netlink: recvmsg: error message from kernel: No such device (19) for request 93 <trace> [1467723214.2082] platform-linux: delayed-action: complete wait-for-nl-response (seq 93, timeout in 0.199921142, failure 19 (No such device)) <debug> [1467723214.2082] platform-linux: do-change-link[20]: failure changing link: failure 19 (No such device) <warn> [1467723214.2082] device (enp0s25): failed to disable userspace IPv6LL address handling https://bugzilla.redhat.com/show_bug.cgi?id=1323571
| * ifcfg: downgrade warning about NM_CONTROLLED=noThomas Haller2016-07-052-13/+5
| | | | | | | | | | | | | | | | | | | | NM_CONTROLLED=no is an explicit user configuration. There is no point in issuing a warning that the user doesn't want to manage a device. <warn> [1467722628.7388] ifcfg-rh: Ignoring connection /etc/sysconfig/network-scripts/ifcfg-eth0 (5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03,"System eth0") / device 'eth0' due to NM_CONTROLLED=no. Also, don't truncate the device spec, instead show the full device spec, it may contains a MAC address or a s390 subchannel.
| * veth: refactor type definition of NMDeviceVethThomas Haller2016-07-052-20/+39
| | | | | | | | Embed the private data inside NMDeviceVeth structure and use NM_GOBJECT_PROPERTIES_DEFINE().
| * ethernet: notify when setting s390 subchannelsThomas Haller2016-07-051-8/+16
| |
| * ethernet: implement NMDeviceEthernet's properties via ↵Thomas Haller2016-07-051-20/+16
| | | | | | | | NM_GOBJECT_PROPERTIES_DEFINE()
| * ethernet: cleanup type definition of NMDeviceEthernetThomas Haller2016-07-052-15/+45
| | | | | | | | | | | | | | | | | | No longer typedef NMDeviceEthernet to NMDevice. We don't do that for most other classes, and I think it is not a good pattern (yes, the casts are cumbersome, but what can you do). Also, embed a pointer to the private data in NMDeviceEthernet for fast lookup and ease of debugging.
| * ethernet: refactor clearing GSource and signal handler id for dcbThomas Haller2016-07-051-32/+16
| |
| * ethernet: refactor construction of NMDeviceEthernat and void warning to ↵Thomas Haller2016-07-051-23/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | update s390 subchannels We should overwrite the constructed() method instead of hooking the GObject creation via constructed(). That is much cleaner as at that point the GObject is fully initialized. Also, this avoids a pointless warning when trying to get the not yet initialized GUdevDevice: <debug> [1467714778.0958] platform: signal: link added: 15: eth0 <DOWN;broadcast,multicast> mtu 1500 arp 1 ethernet? not-init addrgenmode eui64 addr AA:BB:CC:DD:EE:FF driver e1000e <warn> [1467714778.0961] device (eth0): failed to find device 15 'eth0' with udev <debug> [1467714778.0962] device[0x562eac10ee50] (eth0): constructed (NMDeviceEthernet) ... <debug> [1467714778.1334] platform: signal: link changed: 15: enp0s25 <DOWN;broadcast,multicast> mtu 1500 arp 1 ethernet? init addrgenmode eui64 addr AA:BB:CC:DD:EE:FF driver e1000e
| * ethernet: improve logging for _update_s390_subchannels()Thomas Haller2016-07-051-5/+5
| | | | | | | | Give the messages a common prefix.
| * ethernet: minor cleanups in NMDeviceEthernetThomas Haller2016-07-051-30/+20
| |
| * core: don't warn when setting address of non-existing linkThomas Haller2016-07-056-20/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Trying to set a property on a device that does not exist is not something necessarily wrong. Don't print error/warning messages. <trace> [1467707267.2887] device[0x55a74adbdaf0] (enp0s25): set-hw-addr: setting MAC address to 'AA:BB:CC:DD:EE:FF' (reset, unmanage)... <debug> [1467707267.2887] platform: link: setting '(null)' (2) hardware address <debug> [1467707267.2887] platform-linux: link: change 2: address: 68:F7:28:61:68:F7 (6 bytes) <debug> [1467707267.2887] platform-linux: do-request-link: 2 <debug> [1467707267.2888] platform-linux: netlink: recvmsg: error message from kernel: No such device (19) for request 226 <debug> [1467707267.2888] platform-linux: netlink: recvmsg: error message from kernel: No such device (19) for request 227 <error> [1467707267.2888] platform-linux: do-change-link[2]: failure changing link: failure 19 (No such device) <warn> [1467707267.2888] device (enp0s25): set-hw-addr: failed to reset MAC address to 68:F7:28:61:68:F7 (unmanage)
| * shared: add nm_strquote_a() helperThomas Haller2016-07-051-0/+29
| |
| * logging: don't log the function nameThomas Haller2016-07-052-2/+11
| | | | | | | | | | | | | | | | | | | | The function name is no longer visible in the default logging output. It is anyway only used together with journal logging to set "CODE_FUNC". Drop it. It allows to remove the strings from the binary, which decreases the object size of a default build of NetworkManager from 2437400 to 2412824 bytes (-24k, -1%).
| * shared: drop function name from g_return_val_if_reached()Thomas Haller2016-07-051-0/+24
|/ | | | | | When using g_return_val_if_reached(), the default macro would include the function name. This name is increasing the binary size. Replace it in non-debug builds.
* device: fix logging message in nm_device_update_permanent_hw_address()Thomas Haller2016-07-051-2/+2
|
* build: print pppd plugin directory in ./configure summaryThomas Haller2016-07-041-1/+1
|
* vpn: support option to preserve previous routing information on VPN config ↵Thomas Haller2016-07-043-2/+38
| | | | | | | | | | | | | | update On openvpn restart, the VPN helper script is invoked without full routing information. Thus, the routes will be dropped because the helper script cannot provide them on update. Add an option "preserve-route" which tells NetworkManager to preserve and reuse the previous configuration. https://bugzilla.redhat.com/show_bug.cgi?id=1231338 https://bugzilla.gnome.org/show_bug.cgi?id=750873
* manager: preserve constness in NM_MANAGER_GET_PRIVATE() and add compile-time ↵Thomas Haller2016-07-011-2/+13
| | | | type check
* dhcp: let dhcp clients hold a reference to NMDhcpListenerBeniamino Galvani2016-07-012-8/+20
| | | | | | The dhclient and dhcpcd clients can be destroyed during disposal of the DHCP manager singleton and at that point the NMDhcpListener singleton can be already gone. Reference it in the clients.
* manager: use priv->config instead of singleton getter nm_config_get()Thomas Haller2016-07-011-2/+2
|
* manager: keep reference on NMAuthManager singletonThomas Haller2016-07-011-6/+12
| | | | | | A singleton (NMManager) subscribing to another singleton (NMAuthManager) should take a reference on the latter, to ensure its lifetime is longer.
* libnm-core: suppress compiler warning in mac_address_parser()Beniamino Galvani2016-07-011-1/+1
| | | | | | | | | | | @buf_len is always initialized when @buf_arr is set but gcc fails to recognize it: ../libnm-core/nm-keyfile-reader.c: In function 'mac_address_parser': ../libnm-core/nm-keyfile-reader.c:654:36: error: 'buf_len' may be used uninitialized in this function [-Werror=maybe-uninitialized] tmp_string = nm_utils_hwaddr_ntoa (buf_arr, buf_len); Fixes: 8eed67122c58540360b617eb42d5df8328e21b5d
* cli: fix parsing of route metric on 32-bit archsBeniamino Galvani2016-06-301-3/+7
| | | | | | | | | On 32-bit architectures long and int have the same size and thus it's wrong to use nmc_string_to_int() since it uses strtol() and the @max argument can't represent G_MAXUINT32. Use nmc_string_to_uint() instead. https://bugzilla.redhat.com/show_bug.cgi?id=1350201
* device/wifi: properly reset the initial hardware address on shutdownThomas Haller2016-06-303-5/+31
| | | | | | | | | | | | During shutdown, we unmanage Wi-Fi devices, and during NMDevice:deactivate() we would reset to initial MAC address. However, NMDeviceWifi:deactivate() would reset it again to the scanning one. Fix that to properly restore the initial MAC address on the device when NetworkManager exits. Fixes: 4b2e375b3393ca4ebb1069279e919cd5fc9fd2ee
* systemd: merge branch systemd into masterThomas Haller2016-06-3032-190/+625
|\ | | | | | | | | | | | | Conflicts: src/systemd/src/basic/siphash24.c src/systemd/src/basic/time-util.c src/systemd/src/basic/util.c
| * systemd: update code from upstreamThomas Haller2016-06-3030-188/+617
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a direct dump from systemd git on 2016-06-29, git commit 2e0d8df13b1c1deda7b5769accae9e6cd5bf5966. ====== SYSTEMD_DIR=../systemd COMMIT=2e0d8df13b1c1deda7b5769accae9e6cd5bf5966 ( cd "$SYSTEMD_DIR" git checkout "$COMMIT" git reset --hard git clean -fdx ) git ls-files :/src/systemd/src/ | xargs -d '\n' rm -f nm_copy_sd() { mkdir -p "./src/systemd/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./src/systemd/$1" } nm_copy_sd "src/basic/alloc-util.c" nm_copy_sd "src/basic/alloc-util.h" nm_copy_sd "src/basic/async.h" nm_copy_sd "src/basic/escape.c" nm_copy_sd "src/basic/escape.h" nm_copy_sd "src/basic/ether-addr-util.c" nm_copy_sd "src/basic/ether-addr-util.h" nm_copy_sd "src/basic/extract-word.c" nm_copy_sd "src/basic/extract-word.h" nm_copy_sd "src/basic/fileio.c" nm_copy_sd "src/basic/fileio.h" nm_copy_sd "src/basic/fd-util.c" nm_copy_sd "src/basic/fd-util.h" nm_copy_sd "src/basic/fs-util.c" nm_copy_sd "src/basic/fs-util.h" nm_copy_sd "src/basic/hash-funcs.c" nm_copy_sd "src/basic/hash-funcs.h" nm_copy_sd "src/basic/hashmap.c" nm_copy_sd "src/basic/hashmap.h" nm_copy_sd "src/basic/hexdecoct.c" nm_copy_sd "src/basic/hexdecoct.h" nm_copy_sd "src/basic/hostname-util.c" nm_copy_sd "src/basic/hostname-util.h" nm_copy_sd "src/basic/in-addr-util.c" nm_copy_sd "src/basic/in-addr-util.h" nm_copy_sd "src/basic/io-util.c" nm_copy_sd "src/basic/io-util.h" nm_copy_sd "src/basic/list.h" nm_copy_sd "src/basic/log.h" nm_copy_sd "src/basic/macro.h" nm_copy_sd "src/basic/mempool.h" nm_copy_sd "src/basic/mempool.c" nm_copy_sd "src/basic/parse-util.c" nm_copy_sd "src/basic/parse-util.h" nm_copy_sd "src/basic/path-util.c" nm_copy_sd "src/basic/path-util.h" nm_copy_sd "src/basic/prioq.h" nm_copy_sd "src/basic/prioq.c" nm_copy_sd "src/basic/random-util.c" nm_copy_sd "src/basic/random-util.h" nm_copy_sd "src/basic/refcnt.h" nm_copy_sd "src/basic/set.h" nm_copy_sd "src/basic/signal-util.h" nm_copy_sd "src/basic/siphash24.c" nm_copy_sd "src/basic/siphash24.h" nm_copy_sd "src/basic/socket-util.c" nm_copy_sd "src/basic/socket-util.h" nm_copy_sd "src/basic/sparse-endian.h" nm_copy_sd "src/basic/stdio-util.h" nm_copy_sd "src/basic/string-table.c" nm_copy_sd "src/basic/string-table.h" nm_copy_sd "src/basic/string-util.c" nm_copy_sd "src/basic/string-util.h" nm_copy_sd "src/basic/strv.c" nm_copy_sd "src/basic/strv.h" nm_copy_sd "src/basic/time-util.c" nm_copy_sd "src/basic/time-util.h" nm_copy_sd "src/basic/umask-util.h" nm_copy_sd "src/basic/unaligned.h" nm_copy_sd "src/basic/utf8.c" nm_copy_sd "src/basic/utf8.h" nm_copy_sd "src/basic/util.c" nm_copy_sd "src/basic/util.h" nm_copy_sd "src/libsystemd-network/arp-util.c" nm_copy_sd "src/libsystemd-network/arp-util.h" nm_copy_sd "src/libsystemd-network/dhcp6-internal.h" nm_copy_sd "src/libsystemd-network/dhcp6-lease-internal.h" nm_copy_sd "src/libsystemd-network/dhcp6-network.c" nm_copy_sd "src/libsystemd-network/dhcp6-option.c" nm_copy_sd "src/libsystemd-network/dhcp6-protocol.h" nm_copy_sd "src/libsystemd-network/dhcp-identifier.c" nm_copy_sd "src/libsystemd-network/dhcp-identifier.h" nm_copy_sd "src/libsystemd-network/dhcp-internal.h" nm_copy_sd "src/libsystemd-network/dhcp-lease-internal.h" nm_copy_sd "src/libsystemd-network/dhcp-network.c" nm_copy_sd "src/libsystemd-network/dhcp-option.c" nm_copy_sd "src/libsystemd-network/dhcp-packet.c" nm_copy_sd "src/libsystemd-network/dhcp-protocol.h" nm_copy_sd "src/libsystemd-network/lldp-internal.h" nm_copy_sd "src/libsystemd-network/lldp-neighbor.c" nm_copy_sd "src/libsystemd-network/lldp-neighbor.h" nm_copy_sd "src/libsystemd-network/lldp-network.c" nm_copy_sd "src/libsystemd-network/lldp-network.h" nm_copy_sd "src/libsystemd-network/network-internal.c" nm_copy_sd "src/libsystemd-network/network-internal.h" nm_copy_sd "src/libsystemd-network/sd-dhcp6-client.c" nm_copy_sd "src/libsystemd-network/sd-dhcp6-lease.c" nm_copy_sd "src/libsystemd-network/sd-dhcp-client.c" nm_copy_sd "src/libsystemd-network/sd-dhcp-lease.c" nm_copy_sd "src/libsystemd-network/sd-ipv4ll.c" nm_copy_sd "src/libsystemd-network/sd-ipv4acd.c" nm_copy_sd "src/libsystemd-network/sd-lldp.c" nm_copy_sd "src/libsystemd/sd-event/sd-event.c" nm_copy_sd "src/libsystemd/sd-id128/sd-id128.c" nm_copy_sd "src/shared/dns-domain.c" nm_copy_sd "src/shared/dns-domain.h" nm_copy_sd "src/systemd/_sd-common.h" nm_copy_sd "src/systemd/sd-dhcp6-client.h" nm_copy_sd "src/systemd/sd-dhcp6-lease.h" nm_copy_sd "src/systemd/sd-dhcp-client.h" nm_copy_sd "src/systemd/sd-dhcp-lease.h" nm_copy_sd "src/systemd/sd-event.h" nm_copy_sd "src/systemd/sd-ndisc.h" nm_copy_sd "src/systemd/sd-id128.h" nm_copy_sd "src/systemd/sd-ipv4acd.h" nm_copy_sd "src/systemd/sd-ipv4ll.h" nm_copy_sd "src/systemd/sd-lldp.h"
* | man: improve NetworkManager.conf manual fo "wifi.scan-rand-mac-address"Thomas Haller2016-06-301-9/+12
| |
* | device: merge branch 'th/device-inital-mac-addr-bgo708820'Thomas Haller2016-06-3061-745/+2760
|\ \ | | | | | | | | | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=705545 https://bugzilla.gnome.org/show_bug.cgi?id=708820 https://bugzilla.gnome.org/show_bug.cgi?id=758301
| * | device: don't regenerate MAC address on multiple _set_cloned() callsThomas Haller2016-06-301-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wi-Fi device first have a state-transition "disconnected -> prepare" on which they run activate_stage1_device_prepare() and set the MAC address the first time. Later, after getting secrets, they have a state transition "need-auth -> prepare" and end up calling nm_device_hw_addr_set_cloned() again. In this case, we must not regenerate a new MAC address but bail out. There is a small uncertainty there, because we are not sure that the previously generated connection really entailed the same settings. But since we always call nm_device_hw_addr_reset() during device deactivation, this cannot be a left-over from a previous activation and is thus the same activation request.
| * | device: reset MAC address in NMDevice's deactivate()Thomas Haller2016-06-304-16/+2
| | | | | | | | | | | | | | | | | | | | | | | | Instead of letting different subclasses call reset in their virtual deactivate() function, do it in the parent class. This works nicely, because the parent know whether the MAC address is currently modified.
| * | all: make MAC address randomization algorithm configurableThomas Haller2016-06-3017-60/+519
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the per-connection settings "ethernet.cloned-mac-address" and "wifi.cloned-mac-address", and for the per-device setting "wifi.scan-rand-mac-address", we may generate MAC addresses using either the "random" or "stable" algorithm. Add new properties "generate-mac-address-mask" that allow to configure which bits of the MAC address will be scrambled. By default, the "random" and "stable" algorithms scamble all bits of the MAC address, including the OUI part and generate a locally- administered, unicast address. By specifying a MAC address mask, we can now configure to perserve parts of the current MAC address of the device. For example, setting "FF:FF:FF:00:00:00" will preserve the first 3 octects of the current MAC address. One can also explicitly specify a MAC address to use instead of the current MAC address. For example, "FF:FF:FF:00:00:00 68:F7:28:00:00:00" sets the OUI part of the MAC address to "68:F7:28" while scrambling the last 3 octects. Similarly, "02:00:00:00:00:00 00:00:00:00:00:00" will scamble all bits of the MAC address, except clearing the second-least significant bit. Thus, creating a burned-in address, globally administered. One can also supply a list of MAC addresses like "FF:FF:FF:00:00:00 68:F7:28:00:00:00 00:0C:29:00:00:00 ..." in which case a MAC address is choosen randomly. To fully scamble the MAC address one can configure "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00". which also randomly creates either a locally or globally administered address. With this, the following macchanger options can be implemented: `macchanger --random` This is the default if no mask is configured. -> "" while is the same as: -> "00:00:00:00:00:00" -> "02:00:00:00:00:00 02:00:00:00:00:00" `macchanger --random --bia` -> "02:00:00:00:00:00 00:00:00:00:00:00" `macchanger --ending` This option cannot be fully implemented, because macchanger uses the current MAC address but also implies --bia. -> "FF:FF:FF:00:00:00" This would yields the same result only if the current MAC address is already a burned-in address too. Otherwise, it has not the same effect as --ending. -> "FF:FF:FF:00:00:00 <MAC_ADDR>" Alternatively, instead of using the current MAC address, spell the OUI part out. But again, that is not really the same as macchanger does because you explictly have to name the OUI part to use. `machanger --another` `machanger --another_any` -> "FF:FF:FF:00:00:00 <MAC_ADDR> <MAC_ADDR> ..." "$(printf "FF:FF:FF:00:00:00 %s\n" "$(sed -n 's/^\([0-9a-fA-F][0-9a-fA-F]\) \([0-9a-fA-F][0-9a-fA-F]\) \([0-9a-fA-F][0-9a-fA-F]\) .*/\1:\2:\3:00:00:00/p' /usr/share/macchanger/wireless.list | xargs)")"
| * | device: log more details when setting MAC addressThomas Haller2016-06-306-24/+26
| | |
| * | core: refactor unmanaging devices on shutdown and unmanage Wi-Fi devicesThomas Haller2016-06-304-23/+62
| | | | | | | | | | | | | | | | | | | | | | | | Add new virtual function nm_device_unmanage_on_quit() to determine whether to unmanage the device on shutdown. This allows Wi-Fi devices to always be unmanaged. We want that to reset the initial MAC address.