<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/NetworkManager.git/src/libnm-client-impl, branch lr/asserts</title>
<subtitle>gitlab.freedesktop.org: NetworkManager/NetworkManager.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/'/>
<entry>
<title>libnm/tests: test that nm_vpn_service_plugin_read_vpn_details() does not consume "QUIT" command</title>
<updated>2022-03-28T08:40:00+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2022-03-28T08:37:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=b1b1ee8cc41af4f57902560f6769daf15852311e'/>
<id>b1b1ee8cc41af4f57902560f6769daf15852311e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libnm: handle NUL characters in nm_vpn_service_plugin_read_vpn_details() and fix test</title>
<updated>2022-03-28T08:36:05+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2022-03-28T07:40:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=6235815248314c0bd3deb485692881620a859cf9'/>
<id>6235815248314c0bd3deb485692881620a859cf9</id>
<content type='text'>
We expect to read NUL terminated strings. Upon NUL, we should do
something. Treat it as a line break.

Fixes: 8ae9cf4698b4 ('Revert "libnm: buffer reads in nm_vpn_service_plugin_read_vpn_details()"')
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We expect to read NUL terminated strings. Upon NUL, we should do
something. Treat it as a line break.

Fixes: 8ae9cf4698b4 ('Revert "libnm: buffer reads in nm_vpn_service_plugin_read_vpn_details()"')
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "libnm: buffer reads in nm_vpn_service_plugin_read_vpn_details()"</title>
<updated>2022-03-28T07:39:13+00:00</updated>
<author>
<name>Bryan Jacobs</name>
<email>brjacobs@atlassian.com</email>
</author>
<published>2022-03-27T02:07:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=8ae9cf4698b4fadae8cfbfbc801cf93d2385629d'/>
<id>8ae9cf4698b4fadae8cfbfbc801cf93d2385629d</id>
<content type='text'>
This partially reverts commit 4a9fcb0fc32e, which replaced one-byte
reads with buffered ones in the VPN service plugin.

Unfortunately the buffering means that commands coming after the magic
"DONE" string were being pulled into the buffer. Secrets agents expect
a "QUIT" to come after the "DONE", and since with buffering "QUIT" was
in the buffer, this led to a twenty-second delay on every VPN
connection using a secrets manager.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1164

Fixes: 4a9fcb0fc32e ('libnm: buffer reads in nm_vpn_service_plugin_read_vpn_details()')
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This partially reverts commit 4a9fcb0fc32e, which replaced one-byte
reads with buffered ones in the VPN service plugin.

Unfortunately the buffering means that commands coming after the magic
"DONE" string were being pulled into the buffer. Secrets agents expect
a "QUIT" to come after the "DONE", and since with buffering "QUIT" was
in the buffer, this led to a twenty-second delay on every VPN
connection using a secrets manager.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1164

Fixes: 4a9fcb0fc32e ('libnm: buffer reads in nm_vpn_service_plugin_read_vpn_details()')
</pre>
</div>
</content>
</entry>
<entry>
<title>all: change scheduling priority for idle actions to G_PRIORITY_DEFAULT_IDLE</title>
<updated>2022-03-13T10:59:42+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2022-03-08T13:29:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=9b030a398895e554e0848f562dcd0fc307263288'/>
<id>9b030a398895e554e0848f562dcd0fc307263288</id>
<content type='text'>
g_idle_add() uses G_PRIORITY_DEFAULT_IDLE priority. Most of the time we don't
care much about the priority.

But at the places that this patch changes, I think that using
G_PRIORITY_DEFAULT_IDLE (and following g_idle_add()) is more correct. The
reason for this is not very strong, except that it's probably the better
choice. And the old choice was made because I didn't realize that
g_idle_add() uses another default priority. Hence, the old choice was not
for good reasons either.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
g_idle_add() uses G_PRIORITY_DEFAULT_IDLE priority. Most of the time we don't
care much about the priority.

But at the places that this patch changes, I think that using
G_PRIORITY_DEFAULT_IDLE (and following g_idle_add()) is more correct. The
reason for this is not very strong, except that it's probably the better
choice. And the old choice was made because I didn't realize that
g_idle_add() uses another default priority. Hence, the old choice was not
for good reasons either.
</pre>
</div>
</content>
</entry>
<entry>
<title>libnm: fix assertion in NMClient checking for current main context</title>
<updated>2022-03-11T11:11:44+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2022-03-11T10:45:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=ae0cc9618c49bb74bbe54a073dc337e9a3b0005b'/>
<id>ae0cc9618c49bb74bbe54a073dc337e9a3b0005b</id>
<content type='text'>
NMClient is strongly tied to the GMainContext with which it was created.
Several operations must only be called from within the context. There
was an assertion for that.

However, creating (and init_async()) should be allowed to call not
from within the GMainContext. So if the current context has no owner
(is not acquired), then it's also OK.

Fix the assertion for that.

Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
NMClient is strongly tied to the GMainContext with which it was created.
Several operations must only be called from within the context. There
was an assertion for that.

However, creating (and init_async()) should be allowed to call not
from within the GMainContext. So if the current context has no owner
(is not acquired), then it's also OK.

Fix the assertion for that.

Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')
</pre>
</div>
</content>
</entry>
<entry>
<title>libnm: fix uninitialized GError in NMClient's _init_start_cancel_on_idle_cb()</title>
<updated>2022-03-09T22:14:37+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2022-03-09T22:00:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=a9d521bf8c183b9bb95375545ac514de170e3484'/>
<id>a9d521bf8c183b9bb95375545ac514de170e3484</id>
<content type='text'>
Found with `git grep 'GError.*[^,)];'| grep ' *= *NULL;' -v`

Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Found with `git grep 'GError.*[^,)];'| grep ' *= *NULL;' -v`

Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')
</pre>
</div>
</content>
</entry>
<entry>
<title>libnm: fix crash during the restart after killed</title>
<updated>2022-03-09T14:24:25+00:00</updated>
<author>
<name>Wen Liang</name>
<email>liangwen12year@gmail.com</email>
</author>
<published>2022-03-08T20:58:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=549761b0adfc0ce1ceb1fd101ae458e1720f23b6'/>
<id>549761b0adfc0ce1ceb1fd101ae458e1720f23b6</id>
<content type='text'>
When cloud-init job (metadata service crawler) starts, it sends the
SIGTERM signal to nm-cloud-setup and force the nm-cloud-setup to
restart, however, because the error is not initialized as NULL in
`_init_start_cancelled_cb()` before it is set, nm-cloud-setup will hit
a dumped core.

TO fix it, initialize the error as NULL in `_init_start_cancelled_cb()`.

https://bugzilla.redhat.com/show_bug.cgi?id=2027674

Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')

Backtrace:

 #0  g_logv (log_domain=0x7f833a872071 "GLib", log_level=G_LOG_LEVEL_WARNING, format=&lt;optimized out&gt;, args=&lt;optimized out&gt;) at ../glib/gmessages.c:1413
 #1  0x00007f833a81f043 in g_log (log_domain=&lt;optimized out&gt;, log_level=&lt;optimized out&gt;, format=&lt;optimized out&gt;) at ../glib/gmessages.c:1451
 #2  0x00007f833ab97230 in nm_utils_error_set_cancelled (is_disposing=&lt;optimized out&gt;, instance_name=&lt;optimized out&gt;, error=0x7ffff79cb980) at src/libnm-glib-aux/nm-shared-utils.c:2599
 #3  nm_utils_error_set_cancelled (is_disposing=0, instance_name=0x0, error=0x7ffff79cb980) at src/libnm-glib-aux/nm-shared-utils.c:2590
 #4  _init_start_cancelled_cb (cancellable=&lt;optimized out&gt;, user_data=0x5640ca292150) at src/libnm-client-impl/nm-client.c:7324
 #5  _init_start_cancelled_cb (cancellable=&lt;optimized out&gt;, user_data=0x5640ca292150) at src/libnm-client-impl/nm-client.c:7307
 #6  0x00007f833a93094a in _g_closure_invoke_va (param_types=0x0, n_params=&lt;optimized out&gt;, args=0x7ffff79cbb40, instance=0x5640ca267020, return_value=0x0, closure=0x5640ca29d430)
     at ../gobject/gclosure.c:873
 #7  g_signal_emit_valist (instance=0x5640ca267020, signal_id=&lt;optimized out&gt;, detail=0, var_args=var_args@entry=0x7ffff79cbb40) at ../gobject/gsignal.c:3406
 #8  0x00007f833a930a93 in g_signal_emit (instance=instance@entry=0x5640ca267020, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at ../gobject/gsignal.c:3553
 #9  0x00007f833a9a6475 in g_cancellable_cancel (cancellable=0x5640ca267020) at ../gio/gcancellable.c:513
 #10 g_cancellable_cancel (cancellable=0x5640ca267020) at ../gio/gcancellable.c:487
 #11 0x00005640ca1a8bd4 in sigterm_handler (user_data=0x5640ca267020) at src/nm-cloud-setup/main.c:599
 #12 0x00007f833a819d4f in g_main_dispatch (context=0x5640ca268ef0) at ../glib/gmain.c:3337
 #13 g_main_context_dispatch (context=0x5640ca268ef0) at ../glib/gmain.c:4055
 #14 0x00007f833a86e608 in g_main_context_iterate.constprop.0 (context=0x5640ca268ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:4131
 #15 0x00007f833a819463 in g_main_loop_run (loop=0x5640ca24fdb0) at ../glib/gmain.c:4329
 #16 0x00005640ca1a6d04 in nmc_client_new_waitsync (cancellable=0x5640ca267020, out_nmc=0x7ffff79cbfa0, error=0x7ffff79cbf98, first_property_name=0x5640ca1b11db "instance-flags",
     first_property_name=0x5640ca1b11db "instance-flags") at src/libnm-client-aux-extern/nm-libnm-aux.c:129
 #17 0x00005640ca1a3863 in main (argc=1, argv=&lt;optimized out&gt;) at src/nm-cloud-setup/main.c:639
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When cloud-init job (metadata service crawler) starts, it sends the
SIGTERM signal to nm-cloud-setup and force the nm-cloud-setup to
restart, however, because the error is not initialized as NULL in
`_init_start_cancelled_cb()` before it is set, nm-cloud-setup will hit
a dumped core.

TO fix it, initialize the error as NULL in `_init_start_cancelled_cb()`.

https://bugzilla.redhat.com/show_bug.cgi?id=2027674

Fixes: ce0e898fb476 ('libnm: refactor caching of D-Bus objects in NMClient')

Backtrace:

 #0  g_logv (log_domain=0x7f833a872071 "GLib", log_level=G_LOG_LEVEL_WARNING, format=&lt;optimized out&gt;, args=&lt;optimized out&gt;) at ../glib/gmessages.c:1413
 #1  0x00007f833a81f043 in g_log (log_domain=&lt;optimized out&gt;, log_level=&lt;optimized out&gt;, format=&lt;optimized out&gt;) at ../glib/gmessages.c:1451
 #2  0x00007f833ab97230 in nm_utils_error_set_cancelled (is_disposing=&lt;optimized out&gt;, instance_name=&lt;optimized out&gt;, error=0x7ffff79cb980) at src/libnm-glib-aux/nm-shared-utils.c:2599
 #3  nm_utils_error_set_cancelled (is_disposing=0, instance_name=0x0, error=0x7ffff79cb980) at src/libnm-glib-aux/nm-shared-utils.c:2590
 #4  _init_start_cancelled_cb (cancellable=&lt;optimized out&gt;, user_data=0x5640ca292150) at src/libnm-client-impl/nm-client.c:7324
 #5  _init_start_cancelled_cb (cancellable=&lt;optimized out&gt;, user_data=0x5640ca292150) at src/libnm-client-impl/nm-client.c:7307
 #6  0x00007f833a93094a in _g_closure_invoke_va (param_types=0x0, n_params=&lt;optimized out&gt;, args=0x7ffff79cbb40, instance=0x5640ca267020, return_value=0x0, closure=0x5640ca29d430)
     at ../gobject/gclosure.c:873
 #7  g_signal_emit_valist (instance=0x5640ca267020, signal_id=&lt;optimized out&gt;, detail=0, var_args=var_args@entry=0x7ffff79cbb40) at ../gobject/gsignal.c:3406
 #8  0x00007f833a930a93 in g_signal_emit (instance=instance@entry=0x5640ca267020, signal_id=&lt;optimized out&gt;, detail=detail@entry=0) at ../gobject/gsignal.c:3553
 #9  0x00007f833a9a6475 in g_cancellable_cancel (cancellable=0x5640ca267020) at ../gio/gcancellable.c:513
 #10 g_cancellable_cancel (cancellable=0x5640ca267020) at ../gio/gcancellable.c:487
 #11 0x00005640ca1a8bd4 in sigterm_handler (user_data=0x5640ca267020) at src/nm-cloud-setup/main.c:599
 #12 0x00007f833a819d4f in g_main_dispatch (context=0x5640ca268ef0) at ../glib/gmain.c:3337
 #13 g_main_context_dispatch (context=0x5640ca268ef0) at ../glib/gmain.c:4055
 #14 0x00007f833a86e608 in g_main_context_iterate.constprop.0 (context=0x5640ca268ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:4131
 #15 0x00007f833a819463 in g_main_loop_run (loop=0x5640ca24fdb0) at ../glib/gmain.c:4329
 #16 0x00005640ca1a6d04 in nmc_client_new_waitsync (cancellable=0x5640ca267020, out_nmc=0x7ffff79cbfa0, error=0x7ffff79cbf98, first_property_name=0x5640ca1b11db "instance-flags",
     first_property_name=0x5640ca1b11db "instance-flags") at src/libnm-client-aux-extern/nm-libnm-aux.c:129
 #17 0x00005640ca1a3863 in main (argc=1, argv=&lt;optimized out&gt;) at src/nm-cloud-setup/main.c:639
</pre>
</div>
</content>
</entry>
<entry>
<title>libnm: fix an assert in nm_client_get_capabilities()</title>
<updated>2022-03-09T13:18:26+00:00</updated>
<author>
<name>Lubomir Rintel</name>
<email>lkundrak@v3.sk</email>
</author>
<published>2022-03-08T09:46:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=7f1840bbb6fd444164762ce0eb3532f95b835d04'/>
<id>7f1840bbb6fd444164762ce0eb3532f95b835d04</id>
<content type='text'>
The length argument is optional. That makes sense, because the returned
array is NUL-terminated.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1136
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The length argument is optional. That makes sense, because the returned
array is NUL-terminated.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1136
</pre>
</div>
</content>
</entry>
<entry>
<title>all: suppress wrong gcc-12 warning "-Wdangling-pointer"</title>
<updated>2022-02-21T18:50:52+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2022-02-18T19:34:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=dab2ee8ac5c025cc8f3dcb0f0aae7bcecab961e4'/>
<id>dab2ee8ac5c025cc8f3dcb0f0aae7bcecab961e4</id>
<content type='text'>
gcc-12.0.1-0.8.fc36 is annoying with false positives.
It's related to g_error() and its `for(;;) ;`.

For example:

    ../src/libnm-glib-aux/nm-shared-utils.c: In function 'nm_utils_parse_inaddr_bin_full':
    ../src/libnm-glib-aux/nm-shared-utils.c:1145:26: error: dangling pointer to 'error' may be used [-Werror=dangling-pointer=]
     1145 |                     error-&gt;message);
          |                          ^~
    /usr/include/glib-2.0/glib/gmessages.h:343:32: note: in definition of macro 'g_error'
      343 |                                __VA_ARGS__);         \
          |                                ^~~~~~~~~~~
    ../src/libnm-glib-aux/nm-shared-utils.c:1133:31: note: 'error' declared here
     1133 |         gs_free_error GError *error = NULL;
          |                               ^~~~~
    /usr/include/glib-2.0/glib/gmessages.h:341:25: error: dangling pointer to 'addrbin' may be used [-Werror=dangling-pointer=]
      341 |                         g_log (G_LOG_DOMAIN,         \
          |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      342 |                                G_LOG_LEVEL_ERROR,    \
          |                                ~~~~~~~~~~~~~~~~~~~~~~~
      343 |                                __VA_ARGS__);         \
          |                                ~~~~~~~~~~~~
    ../src/libnm-glib-aux/nm-shared-utils.c:1141:13: note: in expansion of macro 'g_error'
     1141 |             g_error("unexpected assertion failure: could parse \"%s\" as %s, but not accepted by "
          |             ^~~~~~~
    ../src/libnm-glib-aux/nm-shared-utils.c:1112:14: note: 'addrbin' declared here
     1112 |     NMIPAddr addrbin;
          |              ^~~~~~~

I think the warning could potentially be useful and prevent real bugs.
So don't disable it altogether, but go through the effort to suppress it
at the places where it currently happens.

Note that NM_PRAGMA_WARNING_DISABLE_DANGLING_POINTER macro only expands
to suppressing the warning with __GNUC__ equal to 12. The purpose is to
only suppress the warning where we know we want to. Hopefully other gcc
versions don't have this problem.

I guess, we could also write a NM_COMPILER_WARNING() check in
"m4/compiler_options.m4", to disable the warning if we detect it. But
that seems too cumbersome.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
gcc-12.0.1-0.8.fc36 is annoying with false positives.
It's related to g_error() and its `for(;;) ;`.

For example:

    ../src/libnm-glib-aux/nm-shared-utils.c: In function 'nm_utils_parse_inaddr_bin_full':
    ../src/libnm-glib-aux/nm-shared-utils.c:1145:26: error: dangling pointer to 'error' may be used [-Werror=dangling-pointer=]
     1145 |                     error-&gt;message);
          |                          ^~
    /usr/include/glib-2.0/glib/gmessages.h:343:32: note: in definition of macro 'g_error'
      343 |                                __VA_ARGS__);         \
          |                                ^~~~~~~~~~~
    ../src/libnm-glib-aux/nm-shared-utils.c:1133:31: note: 'error' declared here
     1133 |         gs_free_error GError *error = NULL;
          |                               ^~~~~
    /usr/include/glib-2.0/glib/gmessages.h:341:25: error: dangling pointer to 'addrbin' may be used [-Werror=dangling-pointer=]
      341 |                         g_log (G_LOG_DOMAIN,         \
          |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      342 |                                G_LOG_LEVEL_ERROR,    \
          |                                ~~~~~~~~~~~~~~~~~~~~~~~
      343 |                                __VA_ARGS__);         \
          |                                ~~~~~~~~~~~~
    ../src/libnm-glib-aux/nm-shared-utils.c:1141:13: note: in expansion of macro 'g_error'
     1141 |             g_error("unexpected assertion failure: could parse \"%s\" as %s, but not accepted by "
          |             ^~~~~~~
    ../src/libnm-glib-aux/nm-shared-utils.c:1112:14: note: 'addrbin' declared here
     1112 |     NMIPAddr addrbin;
          |              ^~~~~~~

I think the warning could potentially be useful and prevent real bugs.
So don't disable it altogether, but go through the effort to suppress it
at the places where it currently happens.

Note that NM_PRAGMA_WARNING_DISABLE_DANGLING_POINTER macro only expands
to suppressing the warning with __GNUC__ equal to 12. The purpose is to
only suppress the warning where we know we want to. Hopefully other gcc
versions don't have this problem.

I guess, we could also write a NM_COMPILER_WARNING() check in
"m4/compiler_options.m4", to disable the warning if we detect it. But
that seems too cumbersome.
</pre>
</div>
</content>
</entry>
<entry>
<title>libnm: fix nm_client_add_and_activate_connection2_finish annotation</title>
<updated>2022-02-09T17:29:33+00:00</updated>
<author>
<name>Val Och</name>
<email>v19930312@gmail.com</email>
</author>
<published>2022-02-09T13:32:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=3b67b7768df3ab8ad57401f5626310a1e26f4917'/>
<id>3b67b7768df3ab8ad57401f5626310a1e26f4917</id>
<content type='text'>
Mark out_result as out argument. Fixes an issue when using libnm bindings.

Fixes: fbb038af5e5d ('all: return output dictionary from "AddAndActivate2"')

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1092
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark out_result as out argument. Fixes an issue when using libnm bindings.

Fixes: fbb038af5e5d ('all: return output dictionary from "AddAndActivate2"')

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1092
</pre>
</div>
</content>
</entry>
</feed>
