summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* supplicant,device: support AP isolationbg/ap-isolationBeniamino Galvani2020-07-014-15/+132
| | | | | Support setting the ApIsolate property of the supplicant interface during association and resetting it to zero during disconnection.
* all: add ap-isolation property to wifi settingBeniamino Galvani2020-07-0115-6/+181
| | | | | Add a new 'ap-isolation' property to the wifi setting, useful to prevent communication between wireless clients.
* ifcfg-rh: add generic shvar getter and setter for ternary variablesBeniamino Galvani2020-07-012-0/+26
|
* libnm: fix leak in nm_utils_is_json_object()Thomas Haller2020-07-011-2/+1
| | | | Fixes: 32f78ae6c3ba ('libnm: expose nm_utils_is_json_object() utility function')
* modem: suppress deprecated warning from libmm for ↵Thomas Haller2020-06-301-3/+16
| | | | | | | | | | | | | | | | | | | | MM_MODEM_CAPABILITY_LTE_ADVANCED On Ubuntu 20.10, we build against ModemManager 1.14.0 and get a compiler warning: ../src/devices/wwan/nm-modem-broadband.c: In function 'try_create_connect_properties': ../src/devices/wwan/nm-modem-broadband.c:492:2: error: 'MMModemCapabilityDeprecated' is deprecated [-Werror=deprecated-declarations] 492 | if (MODEM_CAPS_3GPP (ctx->caps)) { | ^~ Suppress it. An alternative would be to drop the flag entirely. It seems the flag was never used (and never will be used). But if that's true, there is little harm done checking it. If it's not true, we better keep checking for older versions. https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/0cd76bf1c411707b6ba1c4222d791e2115ef6840
* platform/tests: avoid test failures accepting route added signalsThomas Haller2020-06-301-1/+1
| | | | /route/ip6: NMPlatformSignalAssert: ../src/platform/tests/test-route.c:331, test_ip6_route(): failure to accept signal [0,2] times: ip6-route-changed-added ifindex 0 (3 times received)
* wifi: renew dynamic IP configuration after roamingbg/wifi-renew-dhcp-on-roamBeniamino Galvani2020-06-301-0/+9
| | | | | | | | | | | | | | | | | There are some APs that require a DHCP transaction before allowing other traffic. This is meant to improve security by preventing the use of static addresses. Currently we don't renew DHCP after roaming to a new AP and this can lead to broken connectivity with APs that implement the check described above. Also, even if unlikely, the new AP could be in a different layer 3 network and so the old address could be no longer valid. Renew dynamic IP configuration after we detect the supplicant decided to roam to a new AP. Note that we only trigger a DHCP client restart; the DHCP client already implements the logic to renew the previous address and fall back to a full request in case of NAK or timeout. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/449
* ifcfg-rh,libnm: merge branch 'th/ifcfg-bridge-writer'Thomas Haller2020-06-303-89/+74
|\ | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1845608 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/554
| * libnm/doc: clarify values for "bridge.multicast-router"Thomas Haller2020-06-302-3/+4
| | | | | | | | | | | | | | | | | | Kernel (sysfs) and iproute2 only use numbers for the multicast_router option. It's confusing that we name the options differently. Anyway, that cannot be changed anymore. Clarify the meanings in the documentation. https://bugzilla.redhat.com/show_bug.cgi?id=1845608
| * ifcfg-rh: hard code the defaults for bridge settings in write_bridge_setting()Thomas Haller2020-06-301-40/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code like "get_setting_default_uint (s_bridge, NM_SETTING_BRIDGE_FORWARD_DELAY)" looks up the default value of the GObject property. That default value is known at build type. Looking it up is an unnecessary overhead, for something that is already known. Also, the code isn't generic (meaning, it doesn't iterate of a set of properties names and treats them without explicitly naming each property). If we already name the property for which we want the default value, we can just as well name the default value. Additionally, add an assertion that what we would look up matches to what we think is the default.
| * ifcfg-rh: use guint type for handling nm_setting_bridge_get_ageing_time() ↵Thomas Haller2020-06-301-3/+4
| | | | | | | | | | | | return value It returns guint, not guint32. Use the appropriate type.
| * ifcfg-rh: use nm_gstring_add_space_delimiter() in write_bridge_setting()Thomas Haller2020-06-301-44/+22
|/
* contrib: consistency check meson.build in release scriptThomas Haller2020-06-301-6/+10
|
* contrib: improve release script with howto comments and help optionThomas Haller2020-06-301-29/+73
|
* version: add 1.28 macrosBeniamino Galvani2020-06-302-0/+15
|
* build: for signing use key from git's user.signingkeyThomas Haller2020-06-291-1/+5
|
* release: cleanup temporary release-branch and avoid prompt for ftpadmin installThomas Haller2020-06-281-1/+3
|
* release: fix "rc" release build and add option to suppress check for local ↵Thomas Haller2020-06-281-8/+24
| | | | branches
* release: fix RC_VERSION for release scriptThomas Haller2020-06-281-1/+1
| | | | | The release candidate -rc1 has version "1.y.90", -rc2 has "1.y.91", and so on. Fix the script.
* release: fix release script for "rc"Thomas Haller2020-06-281-1/+2
|
* device: clean up exported IP6 config when flushing addressesBeniamino Galvani2020-06-281-0/+3
| | | | | | | | | | After flushing addresses and routes, it's also necessary to update the exported IP6 configuration. https://bugzilla.redhat.com/show_bug.cgi?id=1848888 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/551 Fixes: e302f5ff77a9 ('device: flush IP configuration of slaves during activation')
* NEWS: updateAntonio Cardace2020-06-261-0/+3
|
* nmcs-gcp: merge branch 'ac/gcp_cloud_support'Antonio Cardace2020-06-2614-71/+735
|\ | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/546 https://bugzilla.redhat.com/show_bug.cgi?id=1821787
| * nmcs-gcp: add support for Google Cloud Platform load balancersAntonio Cardace2020-06-266-0/+550
| | | | | | | | | | | | | | | | | | | | This add a provider implementation for GCP that when detected fetches the ip addresses of configured internal load balancers. Once this information is fetched from the metadata server it instructs NetworkManager to add local routes for each found forwarded-ip. https://bugzilla.redhat.com/show_bug.cgi?id=1821787
| * nmcs-main: support adding additional routesAntonio Cardace2020-06-263-56/+80
| | | | | | | | | | | | This allows a provider to only add additional routes to the applied profile https://bugzilla.redhat.com/show_bug.cgi?id=1821787
| * nmcs-http: add param to GET API to set custom HTTP headersAntonio Cardace2020-06-263-0/+35
| | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1821787
| * main: remove unused argumentAntonio Cardace2020-06-261-2/+0
| |
| * nmcs: fix indentationAntonio Cardace2020-06-261-2/+2
| |
| * nm-shared-utils: add util to parse out lines from a stringAntonio Cardace2020-06-262-0/+46
| | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1821787
| * nmcs: add error message when a HTTP request times outAntonio Cardace2020-06-261-1/+2
| | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1821787
| * nmcs-http: remove the timeout once expiredAntonio Cardace2020-06-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | libcurl's documentation for CURLMOPT_TIMERFUNCTION requires the application to install a non-repeating timer. https://curl.haxx.se/libcurl/c/CURLMOPT_TIMERFUNCTION.html So let's remove the GSource once expired. Fixes: 69f048bf0ca3 ('cloud-setup: add tool for automatic IP configuration in cloud')
| * nmcs-http: fix multiple HTTP request bugAntonio Cardace2020-06-261-9/+19
|/ | | | | | | | | | | | | | Since just a single pointer is used to store the socket's GSource if more than 1 consecutive request was done through the same HTTP provider the 2nd request would clear the GSource associated to the second request causing the 1st HTTP request to never complete and end up in a expired timeout. Use a hashtable instead so we can correctly track all requests. https://bugzilla.redhat.com/show_bug.cgi?id=1821787 Fixes: 69f048bf0ca3 ('cloud-setup: add tool for automatic IP configuration in cloud')
* core,libnm: merge branch 'th/kernel-cmdline-match'Thomas Haller2020-06-267-120/+245
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/550
| * libnm/match: extend syntax for match patterns with '|', '&', '!' and '\\'Thomas Haller2020-06-264-97/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For simple matches like match.interface-name, match.driver, and match.path, arguably what we had was fine. There each element (like "eth*") is a wildcard for a single name (like "eth1"). However, for match.kernel-command-line, the elements match individual command line options, so we should have more flexibility of whether a parameter is optional or mandatory. Extend the syntax for that. - the elements can now be prefixed by either '|' or '&'. This makes optional or mandatory elements, respectively. The entire match evaluates to true if all mandatory elements match (if any) and at least one of the optional elements (if any). As before, if neither '|' nor '&' is specified, then the element is optional (that means, "foo" is the same as "|foo"). - the exclamation mark is still used to invert the match. If used alone (like "!foo") it is a shortcut for defining a mandatory match ("&!foo"). - the backslash can now be used to escape the special characters above. Basically, the special characters ('|', '&', '!') are stripped from the start of the element. If what is left afterwards is a backslash, it also gets stripped and the remainder is the pattern. For example, "\\&foo" has the pattern "&foo" where '&' is no longer treated specially. This special handling of the backslash is only done at the beginning of the element (after the optional special characters). The remaining string is part of the pattern, where backslashes might have their own meaning. This change is mostly backward compatible, except for existing matches that started with one of the special characters '|', '&', '!', and '\\'.
| * core/tests: add unit test for nm_utils_kernel_cmdline_match_check()Thomas Haller2020-06-261-0/+34
| |
| * core: move matching of kernel command line to separate functionThomas Haller2020-06-263-79/+97
| |
| * docs: fix escaping XML in "tools/generate-docs-nm-settings-docs-gir.py"Thomas Haller2020-06-261-5/+12
|/ | | | | | | The gtk-doc text that the tool receives is not XML, it's a plain text. When setting the plain text as XML attribute, we need to properly escape it. The previous XML escape code was naive, and didn't cover for a plain ampersand.
* all: merge branch 'th/strbuf-uses'Thomas Haller2020-06-2612-424/+672
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/547
| * supplicant: use NMStrBuf in wifi_freqs_to_string()Thomas Haller2020-06-261-14/+28
| | | | | | | | And don't access global data without atomic operations.
| * supplicant: use nm_streq() in "nm-supplicant-config.c"Thomas Haller2020-06-261-18/+18
| |
| * libnm: refactor wifi frequency handling in libnmThomas Haller2020-06-262-64/+176
| | | | | | | | | | | | | | | | | | | | | | | | - mark global variables as const. This allows the linker to mark the variable as read only. - for nm_utils_wifi_[25]ghz_freqs(), don't generate a list based on bg_table/a_table. Instead, keep static array of frequencies. Since we have unit tests that check the consistency, this has little maintenance effort. - add unit tests
| * libnm: don't use assert for validating arguments to ↵Thomas Haller2020-06-261-4/+2
| | | | | | | | nm_utils_wifi_find_next_channel()
| * libnm: use nm_streq() in "libnm-core/nm-utils.c"Thomas Haller2020-06-261-33/+29
| |
| * libnm: use NMStrBuf in nm_utils_file_search_in_paths()Thomas Haller2020-06-261-23/+23
| |
| * libnm: use NMStrBuf in _nm_utils_uuid_generate_from_strings()Thomas Haller2020-06-261-17/+17
| |
| * libnm: use NMStrBuf in nm_ip_routing_rule_to_string()Thomas Haller2020-06-261-66/+67
| |
| * keyfile: cleanup uses of GString in keyfile codeThomas Haller2020-06-262-142/+159
| | | | | | | | | | | | | | | | | | | | | | | | - in _keyfile_key_decode(), don't use GString. We know the maximum string length before, so we can just allocated one buffer. - in qdisc and tfilter writers, reuse the same GString instance. No need to allocate a new temporary string buffer for each iteration. - at other places, replace GString by NMStrBuf. This avoids the heap allocated GString instance. Also, most operations can be inlined. This results in larger code side, but avoids function calls to glib.
| * libnm: use NMStrBuf in "nm-setting-bridge.c"Thomas Haller2020-06-262-29/+10
| |
| * shared: add nm_str_buf_reset() helperThomas Haller2020-06-261-0/+18
| |
| * shared: add nm_utils_escaped_tokens_escape_strbuf*() helpersThomas Haller2020-06-261-0/+28
| |