summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* manager: assume DHCP if we see a lease on taking over an initramfs connectionlr/initramfs-takeoverLubomir Rintel2019-11-151-0/+6
| | | | | | | | | In general, we aren't really able to tell, but when we see a lease file we're pretty sure that DHCP is what was going on. https://bugzilla.redhat.com/show_bug.cgi?id=1771792 Fixes: f2fe6c03ee3f ('manager: don't treat the initramfs-configured DHCP connections as generated')
* merge: branch 'bg/dhcp-iaid-rh1749358'Beniamino Galvani2019-11-1124-685/+1281
|\ | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/315 https://bugzilla.redhat.com/show_bug.cgi?id=1749358
| * all: support 'stable' DHCP IAIDbg/dhcp-iaid-rh1749358Beniamino Galvani2019-11-114-11/+38
| | | | | | | | | | Support a new DHCP IAID special value 'stable' that generates the IAID based on the stable-id, a per-host key and the interface name.
| * core: support ipvX.dhcp-iaid propertiesBeniamino Galvani2019-11-1111-32/+210
| |
| * all: add ipvX.dhcp-iaid propertiesBeniamino Galvani2019-11-1113-632/+1032
| | | | | | | | | | Add new ipv4.dhcp-iaid and ipv6.dhcp-iaid properties to specify a DHCP IAID.
| * device: assert that _get_stable_id() never failsBeniamino Galvani2019-11-111-21/+12
|/ | | | | It would be a bug if _get_stable_id() fails to return a value. Add an assertion and remove checks from callers.
* po: update Ukrainian (uk) translationYuri Chornoivan2019-11-111-2468/+2672
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/332
* libnm/tests: explicilty check behavior of _nm_utils_ascii_str_to_int64() ↵Thomas Haller2019-11-081-0/+5
| | | | with leading zeros
* libnm: merge branch 'th/libnm-no-dbus-codegen-3'Thomas Haller2019-11-0723-455/+681
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/324
| * clients/tests: read stdout/stderr buffers during test-clients.pyThomas Haller2019-11-071-12/+53
| | | | | | | | | | | | We need to actually read the stdout/stderr of the nmcli programs. Otherwise, the pipe might fill uup and block to process (eventually leading to timeout).
| * clients/tests: set NM_TEST_CALLING_NUM environement variable for client testsThomas Haller2019-11-071-0/+1
| | | | | | | | | | | | | | Debugging tests that are called by test-client.py is cumbersome. One way would be to set NM_TEST_CLIENT_NMCLI_PATH to a wrapper script. However, then we want to know from the wrapper script which test we are currently calling. Add that to the environment.
| * cli: unsubscribe permission signal from NMClient on exitThomas Haller2019-11-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the libnm rework, we might still emit permissions changed signal while destructing the instance. That triggers an assertion. Backtrace, with a different libnm: #0 _g_log_abort (breakpoint=1) at ../glib/gmessages.c:554 #1 0x00007ffff77d09b6 in g_logv (log_domain=0x7ffff7f511cd "libnm", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffcb80) at ../glib/gmessages.c:1373 #2 0x00007ffff77d0b83 in g_log (log_domain=log_domain@entry=0x7ffff7f511cd "libnm", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff78215df "%s: assertion '%s' failed") at ../glib/gmessages.c:1415 #3 0x00007ffff77d137d in g_return_if_fail_warning (log_domain=log_domain@entry=0x7ffff7f511cd "libnm", pretty_function=pretty_function@entry=0x7ffff7f58aa0 <__func__.40223> "nm_client_get_permission_result", expression=expression@entry=0x7ffff7f54830 "NM_IS_CLIENT (client)") at ../glib/gmessages.c:2771 #4 0x00007ffff7e9de9a in nm_client_get_permission_result (client=0x0, permission=permission@entry=NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK) at libnm/nm-client.c:3816 #5 0x0000555555593ba3 in got_permissions (nmc=nmc@entry=0x55555562ec20 <nm_cli>) at clients/cli/general.c:587 #6 0x0000555555593bcb in permission_changed (client=<optimized out>, permission=<optimized out>, result=<optimized out>, nmc=0x55555562ec20 <nm_cli>) at clients/cli/general.c:600 #7 0x00007ffff73b1aa8 in ffi_call_unix64 () at ../src/x86/unix64.S:76 #8 0x00007ffff73b12a4 in ffi_call (cif=cif@entry=0x7fffffffced0, fn=fn@entry=0x555555593bbf <permission_changed>, rvalue=<optimized out>, avalue=avalue@entry=0x7fffffffcde0) at ../src/x86/ffi64.c:525 #9 0x00007ffff78b4746 in g_cclosure_marshal_generic_va (closure=<optimized out>, return_value=<optimized out>, instance=<optimized out>, args_list=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=<optimized out>) at ../gobject/gclosure.c:1614 #10 0x00007ffff78b3996 in _g_closure_invoke_va (closure=0x5555556f4330, return_value=0x0, instance=0x55555565a020, args=0x7fffffffd180, n_params=2, param_types=0x555555656f00) at ../gobject/gclosure.c:873 #11 0x00007ffff78d0228 in g_signal_emit_valist (instance=0x55555565a020, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd180) at ../gobject/gsignal.c:3306 #12 0x00007ffff78d09d3 in g_signal_emit (instance=instance@entry=0x55555565a020, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3453 #13 0x00007ffff7e8989a in _emit_permissions_changed (self=self@entry=0x55555565a020, permissions=permissions@entry=0x555555690e40 = {...}, force_unknown=force_unknown@entry=1) at libnm/nm-client.c:2874 #14 0x00007ffff7e9a0c9 in _init_release_all (self=self@entry=0x55555565a020) at libnm/nm-client.c:6092 #15 0x00007ffff7e9bcde in dispose (object=0x55555565a020 [NMClient]) at libnm/nm-client.c:6838 #16 0x00007ffff78b8c28 in g_object_unref (_object=<optimized out>) at ../gobject/gobject.c:3344 #17 g_object_unref (_object=0x55555565a020) at ../gobject/gobject.c:3274 #18 0x00005555555badcf in nmc_cleanup (nmc=0x55555562ec20 <nm_cli>) at clients/cli/nmcli.c:924 #19 0x00005555555bbea7 in main (argc=<optimized out>, argv=0x7fffffffd498) at clients/cli/nmcli.c:987
| * libnm/tests: fix stub implementation for remote-next-connectionThomas Haller2019-11-071-3/+16
| | | | | | | | | | | | We cannot first remove the connection (and emit property changed signals), before replying with the newly added path (that already no longer exists). Fix the stub implementation.
| * libnm/tests: drop test_activate_failed() testThomas Haller2019-11-072-51/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | With this test the stub service simulates a failure to add-and-activate the connection. However the implementation of the stub service was not simulating the real behavior of NetworkManager service. libnm will add the possibility to assert against invalid server behavior by setting LIBNM_CLIENT_DEBUG=error. With that change, libnm will complain that the stub service behaves invalid, and rightly so. Instead of fixing the test, just drop it.
| * libnm/tests: unsubscribe signal handler during test_activate_virtual()Thomas Haller2019-11-071-3/+13
| | | | | | | | | | | | | | | | | | | | | | libnm is gonna change, where it would still emit signals when the instance gets destructed. In particular, when the device gets removed from the NMClient cache, the references to other objects would be cleared (and consequently property changed signals emitted). This will cause a test failure, because the signal was not unsubscribed: test:ERROR:libnm/tests/test-nm-client.c:694:device_ac_changed_cb: assertion failed: (nm_device_get_active_connection (NM_DEVICE (device)) != NULL)
| * tests: use nmtstc_client_new() to create NMClient instance and cleanup testsThomas Haller2019-11-073-308/+159
| | | | | | | | | | | | The advantage of nmtstc_client_new() is that it randomly either uses the synchronous or asynchronous constructor. Of course, both should behave pretty much the same. Hence, this increases our test coverage.
| * tests: add nmtstc_client_new() helperThomas Haller2019-11-072-0/+149
| |
| * tests: support D-Bus property Device.StateReason in mock serviceThomas Haller2019-11-071-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The device interface (org.freedesktop.NetworkManager.Device) has two properties: "State" and "StateReason". Both of them are supported by NetworkManager for a very long time. Note that "StateReason" is a tuple and also exposes the state along the reason. When reworking libnm, we will ignore the "State" property and only consider "StateReason". The advantage is less code and not using redundant state. This will also work well, because NetworkManager's D-Bus API supports this property for a very long time. However, that would then break the CI tests, because currently "tools/test-networkmanager-service.py" does not expose that property. Add it.
| * libnm: retire nm_client_wimax_*() functionsThomas Haller2019-11-072-20/+18
| | | | | | | | | | | | | | | | The server doesn's support WiMAX anymore. Hence there is no point in keeping this functionality. While we cannot drop the functions, let them not do anything. The code in NMManager is still there. But since we will soon drop NMManager entirely, it doesn't matter.
| * libnm: move nm_permission_to_client()/nm_permission_result_to_client() to ↵Thomas Haller2019-11-073-53/+90
| | | | | | | | | | | | | | | | | | nm-libnm-utils.c It's nicely trivial and independent. Move it to a separate place, to avoid cluttering the more complicated code and to make it testable. Also, use binary search to find the value by string.
| * libnm: deprecate nm_device_set_managed() and nm_device_set_autoconnect() APIThomas Haller2019-11-072-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These setters not only invoke a synchronous D-Bus call (ignoring the return value). They also modify the content of the cache client-side, bypassing the information that we receive via notifications from the server. Also, they don't emit property changed signals, but in any case they are broken beyond repair. Fully mark them as deprecated. Note that they were already marked as _NM_DEPRECATED_SYNC_METHOD. However, that does not actually mark the API as deprecated, because fully deprecating all synchronous methods is premature at this point.
| * libnm: print timestamp in LIBNM_CLIENT_DEBUG debug loggingThomas Haller2019-11-071-1/+10
| | | | | | | | | | | | It's useful, because it's easy to get overwhelemed by the logging output. The timestamp makes it easier to keep track. Also, it allows to see how long things take.
| * all: use nm_dbus_path_not_empty()Thomas Haller2019-11-073-5/+3
| |
| * shared/tests: add nmtst_main_context_iterate_until() helperThomas Haller2019-11-071-0/+28
| |
| * shared: add nm_g_main_context_push_thread_default*() and nm_auto helperThomas Haller2019-11-071-0/+36
| |
| * shared: add nm_auto_destroy_and_unref_gsource macroThomas Haller2019-11-071-0/+3
| |
| * shared: assert in nm_ref_string_unref() for valid NMRefString instanceThomas Haller2019-11-071-2/+8
| |
| * shared: add nm_dbus_path_not_empty() helperThomas Haller2019-11-071-0/+11
| |
| * shared: add nm_g_set_error_take*() utilThomas Haller2019-11-071-0/+24
| |
| * shared: add nm_ppdirect_hash()/nm_ppdirect_equal() helpersThomas Haller2019-11-072-1/+40
| | | | | | | | | | | | Useful for hashing pointers to a pointer to a pointer, and compare the resulting pointer directly. This will be actually used.
| * shared: add NM_STRUCT_OFFSET_ENSURE_TYPE() helperThomas Haller2019-11-071-0/+7
|/
* nmcli/tests: fix broken test after "nmcli: show IP interface name when doing ↵Thomas Haller2019-11-072-612/+788
| | | | | | 'nmcli connection show <PROFILE>'" Fixes: 303fc1745093 ('nmcli: show IP interface name when doing 'nmcli connection show <PROFILE>'')
* nmcli: show IP interface name when doing 'nmcli connection show <PROFILE>'Antonio Cardace2019-11-062-2/+10
| | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/218 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/322
* libnm: fix handling "q" (uint16) property types in libnmThomas Haller2019-11-061-6/+18
| | | | | | | | | | NMDeviceVxlan has some "q" type properties. They were not handled: $ G_MESSAGES_DEBUG=all PAGER= LIBNM_GLIB_DEBUG=properties-changed nmcli 2>&1 | grep "couldn't be set from D-Bus type" libnm-Message: 10:44:04.538: demarshal_generic: NMDeviceVxlan:dst-port (type guint) couldn't be set from D-Bus type q. libnm-Message: 10:44:04.538: demarshal_generic: NMDeviceVxlan:src-port-max (type guint) couldn't be set from D-Bus type q. libnm-Message: 10:44:04.538: demarshal_generic: NMDeviceVxlan:src-port-min (type guint) couldn't be set from D-Bus type q. libnm-Message: 10:44:04.539: demarshal_generic: NMDeviceWireGuard:listen-port (type guint) couldn't be set from D-Bus type q.
* libnm/license: relicense "libnm-core/nm-json.[hc]" under LGPL-2.1+Thomas Haller2019-11-062-2/+2
| | | | | | | | | | | | | | | | | The only contributors to this code are Red Hat employees who agree with this license change. $ git log --pretty=format:'%Cred%h%Creset - %Cgreen(%ai)%Creset [%C(yellow)%an%Creset] %s%C(yellow)%d%Creset' --no-merges -- 'libnm-core/nm-json.?' 'libnm-core/nm-jansson.?' ... $ git shortlog -s --no-merges -- 'libnm-core/nm-json.?' 'libnm-core/nm-jansson.?' 1 Beniamino Galvani 1 Lubomir Rintel 8 Thomas Haller Signed-off-by: Beniamino Galvani <bgalvani@redhat.com> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Signed-off-by: Thomas Haller <thaller@redhat.com>
* acd: poll the acd fd after starting the announcementsBeniamino Galvani2019-11-061-0/+10
| | | | | | | | | | | In nm_acd_manager_announce_addresses() we should not only start the probes but also add the acd file descriptor to the main loop. Otherwise, a timer is armed to send the announcements but it never fires and no announcements are sent. Fixes: d9a4b59c18e3 ('acd: adapt NM code and build options') https://bugzilla.redhat.com/show_bug.cgi?id=1767681
* libnm: adjust symbol versioning after backporting 802-1x.optional to 1.20.6Beniamino Galvani2019-11-061-1/+5
| | | | | | NM 1.22 is not released yet and 1.20.6 will happen before 1.22.0, so we can introduce the new API with version libnm_1_20_6 in both releases without having duplicate symbols on 1.22.
* clients: draw border around qr code on linux consoleLubomir Rintel2019-11-051-2/+2
| | | | | | Scanners won't recognize it on black background otherwise. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/327
* merge: branch 'sharkcz/s390-initrd'Lubomir Rintel2019-11-042-15/+123
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/317
| * initrd/tests: test that we generate the s390 interface names correctlyLubomir Rintel2019-11-041-10/+73
| |
| * initrd: handle rd.znet with legacy interface namesDan Horák2019-11-041-2/+17
| | | | | | | | | | Handle rd.znet with legacy interface names too, the index for eth or ctc corresponds to the position on the command line.
| * initrd: prepare interface in rd.znet only if persistent interface names are ↵Dan Horák2019-11-041-14/+26
| | | | | | | | | | | | | | | | | | enabled When processing the rd.znet option set the interface name only in case when the persistent interface names feature isn't disabled via net.ifnames=0 [lkundrak@v3.sk: minor tweaks to the net.ifnames=0 parsing]
| * initrd/tests: use a valid combination of device and interface name for testingDan Horák2019-11-041-2/+3
| |
| * initrd: use proper interface when adding s390 specific detailsDan Horák2019-11-041-2/+19
|/ | | | | | | | The current solution for s390 specific details relies on an interface to exist before adding the s390 details. It means the ip= option must precede the rd.znet= option. Also only a single interface can be configured. With this change the s390 details are put to the right interface and properly named interface is created if it hasn't existed yet.
* release: bump version to 1.21.3-dev1.21.3-devLubomir Rintel2019-11-032-2/+2
|
* merge: branch 'lr/fix-iwd-1-0'Lubomir Rintel2019-11-031-1/+19
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/325
| * iwd: unbreak iwd-1.0lr/fix-iwd-1-0Lubomir Rintel2019-11-031-1/+9
| | | | | | | | | | | | The upstream apparently thought it's a great idea to change the agent manager path. This fixes things for those unfortunate enough to run IWD.
| * iwd: add some missing error handlingLubomir Rintel2019-11-021-0/+10
|/ | | | | g_dbus_object_manager_get_interface() can happily return NULL and we need to check for that.
* build: add PPPD_PATH to config.h.mesonworldofpeace2019-11-011-0/+3
| | | | | | | | | | Without this using -Dpppd= was completely broken. First observed in NixOS [0] [0]: https://github.com/NixOS/nixpkgs/issues/72330 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/323
* po/de: fix quotingLubomir Rintel2019-10-311-1/+1
|