summaryrefslogtreecommitdiff
path: root/src/settings/plugins/ifupdown
Commit message (Collapse)AuthorAgeFilesLines
* all: move "src/" directory to "src/core/"Thomas Haller2021-02-0433-2347/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently "src/" mostly contains the source code of the daemon. I say mostly, because that is not true, there are also the device, settings, wwan, ppp plugins, the initrd generator, the pppd and dhcp helper, and probably more. Also we have source code under libnm-core/, libnm/, clients/, and shared/ directories. That is all confusing. We should have one "src" directory, that contains subdirectories. Those subdirectories should contain individual parts (libraries or applications), that possibly have dependencies on other subdirectories. There should be a flat hierarchy of directories under src/, which contains individual modules. As the name "src/" is already taken, that prevents any sensible restructuring of the code. As a first step, move "src/" to "src/core/". This gives space to reorganize the code better by moving individual components into "src/". For inspiration, look at systemd's "src/" directory. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/743
* build/meson: fix linking of core plugins to not include static helper librariesThomas Haller2021-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | | We have many static helper libraries, like libnm-glib-aux or libnm-core. These can be statically linked in any end-binary as internal API. However, they must only be linked once. Also, we have various plugins (device, settings, ppp, wwan) which are dlopened by NetworkManager. They should use the symbols from NetworkManager core. It is important that they do not link with the static libraries already, because also NetworkManager core links with it, so these symbols will be duplicate. As the symbols are internal, you might think that it is not a real problem to duplicate them. However, there are also global variables, like the hash tables for NMRefStr or the seed for NMHash. These global variables must be only be used once, and hence also these symbols must no be duplicated. Fix that by adding a new dependency that is for the core plugins. This dependency only has "include_directories" but not "link_with".
* build/meson: cleanup meson files of coreThomas Haller2021-01-282-11/+7
|
* build/meson: rename "daemon_nm_default_dep" to "core_default_dep"Thomas Haller2021-01-281-2/+2
| | | | | | | | Naming for us is hard, because everything is an "nm". However, let's standardize on the term "core" for the daemon, and not "daemon". Eventually I would like to move the daemon from "src/" to "src/core/", rename the dep in anticipation of that.
* build/meson: cleanup "src/meson.build"Thomas Haller2021-01-271-1/+1
|
* all: update deprecated SPDX license identifiersThomas Haller2021-01-059-9/+9
| | | | | | | | | | | | | | | | These SPDX license identifiers are deprecated ([1]). Update them. [1] https://spdx.org/licenses/ sed \ -e '1 s%^/\* SPDX-License-Identifier: \(GPL-2.0\|LGPL-2.1\)+ \*/$%/* SPDX-License-Identifier: \1-or-later */%' \ -e '1,2 s%^\(--\|#\|//\) SPDX-License-Identifier: \(GPL-2.0\|LGPL-2.1\)+$%\1 SPDX-License-Identifier: \2-or-later%' \ -i \ $(git grep -l SPDX-License-Identifier -- \ ':(exclude)shared/c-*/' \ ':(exclude)shared/n-*/' \ ':(exclude)shared/systemd/src' \ ':(exclude)src/systemd/src')
* all: unify comment style for SPDX-License-Identifier tagThomas Haller2020-09-297-7/+7
| | | | | | | | | | Our coding style recommends C style comments (/* */) instead of C++ (//). Also, systemd (which we partly fork) uses C style comments for the SPDX-License-Identifier. Unify the style. $ sed -i '1 s#// SPDX-License-Identifier: \([^ ]\+\)$#/* SPDX-License-Identifier: \1 */#' -- $(git ls-files -- '*.[hc]' '*.[hc]pp')
* format: replace tabs for indentation in code commentsac/clang-formatThomas Haller2020-09-282-11/+11
| | | | | | | | | | | | sed -i \ -e 's/^'$'\t'' \*/ */g' \ -e 's/^'$'\t\t'' \*/ */g' \ -e 's/^'$'\t\t\t'' \*/ */g' \ -e 's/^'$'\t\t\t\t'' \*/ */g' \ -e 's/^'$'\t\t\t\t\t'' \*/ */g' \ -e 's/^'$'\t\t\t\t\t\t'' \*/ */g' \ -e 's/^'$'\t\t\t\t\t\t\t'' \*/ */g' \ $(git ls-files -- '*.[hc]')
* all: reformat all with new clang-format styleAntonio Cardace2020-09-287-1602/+1602
| | | | | | | | | | | | Run: ./contrib/scripts/nm-code-format.sh -i ./contrib/scripts/nm-code-format.sh -i Yes, it needs to run twice because the first run doesn't yet produce the final result. Signed-off-by: Antonio Cardace <acardace@redhat.com>
* all: add trailing semicolon to NM_AUTO_DEFINE_FCN_*() usesThomas Haller2020-07-191-1/+1
|
* all: fix minor typosYuri Chornoivan2020-07-071-1/+1
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/565
* ifupdown: use _nm_utils_ascii_str_to_int64() for converting netmask to stringThomas Haller2020-04-011-7/+4
|
* meson: merge branch 'inigomartinez/meson-license'Thomas Haller2020-03-282-0/+4
|\ | | | | | | | | | | | | | | | | | | Add SPDX license headers for meson files. As far as I can tell, according to RELICENSE.md file, almost everybody who contributed to the meson files agreed to the LGPL-2.1+ licensing. This entails the vast majority of code in question. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/397
| * license: Add license using SPDX identifiers to meson build filesIñigo Martínez2020-02-172-0/+4
| | | | | | | | | | License is missing in meson build files. This has been added using SPDX identifiers and licensed under LGPL-2.1+.
* | all: use nm_clear_pointer() instead of g_clear_pointer()Thomas Haller2020-03-231-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | g_clear_pointer() would always cast the destroy notify function pointer to GDestroyNotify. That means, it lost some type safety, like GPtrArray *ptr_arr = ... g_clear_pointer (&ptr_arr, g_array_unref); Since glib 2.58 ([1]), g_clear_pointer() is also more type safe. But this is not used by NetworkManager, because we don't set GLIB_VERSION_MIN_REQUIRED to 2.58. [1] https://gitlab.gnome.org/GNOME/glib/-/commit/f9a9902aac826ab4aecc25f6eb533a418a4fa559 We have nm_clear_pointer() to avoid this issue for a long time (pre 1.12.0). Possibly we should redefine in our source tree g_clear_pointer() as nm_clear_pointer(). However, I don't like to patch glib functions with our own variant. Arguably, we do patch g_clear_error() in such a manner. But there the point is to make the function inlinable. Also, nm_clear_pointer() returns a boolean that indicates whether anything was cleared. That is sometimes useful. I think we should just consistently use nm_clear_pointer() instead, which does always the preferable thing. Replace: sed 's/\<g_clear_pointer *(\([^;]*\), *\([a-z_A-Z0-9]\+\) *)/nm_clear_pointer (\1, \2)/g' $(git grep -l g_clear_pointer) -i
* all: use nm_utils_ipaddr_is_valid() instead of nm_utils_ipaddr_valid()Thomas Haller2020-01-281-2/+2
| | | | | | | | We should use the same "is-valid" function everywhere. Since nm_utils_ipaddr_valid() is part of libnm, it does not qualify. Use nm_utils_ipaddr_is_valid() instead.
* all: unify format of our Copyright source code commentsThomas Haller2019-10-026-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ```bash readarray -d '' FILES < <( git ls-files -z \ ':(exclude)po' \ ':(exclude)shared/c-rbtree' \ ':(exclude)shared/c-list' \ ':(exclude)shared/c-siphash' \ ':(exclude)shared/c-stdaux' \ ':(exclude)shared/n-acd' \ ':(exclude)shared/n-dhcp4' \ ':(exclude)src/systemd/src' \ ':(exclude)shared/systemd/src' \ ':(exclude)m4' \ ':(exclude)COPYING*' ) sed \ -e 's/^\(--\|#\| \*\) *\(([cC]) *\)\?Copyright \+\(\(([cC])\) \+\)\?\(\(20\|19\)[0-9][0-9]\) *[-–] *\(\(20\|19\)[0-9][0-9]\) \+\([^ ].*\)$/\1 C1pyright#\5 - \7#\9/' \ -e 's/^\(--\|#\| \*\) *\(([cC]) *\)\?Copyright \+\(\(([cC])\) \+\)\?\(\(20\|19\)[0-9][0-9]\) *[,] *\(\(20\|19\)[0-9][0-9]\) \+\([^ ].*\)$/\1 C2pyright#\5, \7#\9/' \ -e 's/^\(--\|#\| \*\) *\(([cC]) *\)\?Copyright \+\(\(([cC])\) \+\)\?\(\(20\|19\)[0-9][0-9]\) \+\([^ ].*\)$/\1 C3pyright#\5#\7/' \ -e 's/^Copyright \(\(20\|19\)[0-9][0-9]\) \+\([^ ].*\)$/C4pyright#\1#\3/' \ -i \ "${FILES[@]}" echo ">>> untouched Copyright lines" git grep Copyright "${FILES[@]}" echo ">>> Copyright lines with unusual extra" git grep '\<C[0-9]pyright#' "${FILES[@]}" | grep -i reserved sed \ -e 's/\<C[0-9]pyright#\([^#]*\)#\(.*\)$/Copyright (C) \1 \2/' \ -i \ "${FILES[@]}" ``` https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/298
* meson: Remove tests related to check_so_symbolsIñigo Martínez2019-10-011-12/+0
| | | | | These tests are already working since 19a718bc1 so `FIXME` comments are not needed anymore.
* meson: Avoid the creation of an extra variableIñigo Martínez2019-10-011-5/+1
| | | | | | | An extra variable is used for sources of `libnm-settings-plugin-ifupdown` module. However, it only contains one source file and using it directly avoiding the creation of the extra variable doesn't hurt readibility.
* meson: Improve the src build fileIñigo Martínez2019-10-011-1/+2
| | | | | | | | | | | | The targets that involve the use of the `NetworkManager` library, built in the `src` build file have been improved by applying a set of changes: - Indentation has been fixed. - Set of objects used in targets have been grouped together. - Aritificial dependencies used to group dependencies and custom compiler flags have been removed and their use replaced with proper dependencies and compiler flags to avoid any confussion.
* meson: Improve the libnm-core build fileIñigo Martínez2019-10-011-8/+4
| | | | | | | | | | | | | | | | | | The `libnm-core` build file has been improved by applying a set of changes: - Indentation has been fixed to be consistent. - Library variable names have been changed to `lib{name}` pattern following their filename pattern. - `shared` prefix has been removed from all variables using it. - Dependencies have been reviewed to store the necessary data. - The use of the libraries and dependencies created in this file has been reviewed through the entire source code. This has required the addition or the removal of different libraries and dependencies in different targets. - Some files used directly with the `files` function have been moved to their nearest path build file because meson stores their full path seamessly and they can be used anywhere later.
* meson: Use dependency for nm-default headerIñigo Martínez2019-10-011-0/+1
| | | | | | | | | | | | | The `nm-default.h` header is used widely in the code by many targets. This header includes different headers and needs different libraries depending the compilation flags. A new set of `*nm_default_dep` dependencies have been created to ease the inclusion of different directorires and libraries. This allows cleaner build files and avoiding linking unnecessary libraries so this has been applied allowing the removal of some dependencies involving the linking of unnecessary libraries.
* all: manually drop code comments with file descriptionThomas Haller2019-10-017-19/+6
|
* all: SPDX header conversionLubomir Rintel2019-09-107-98/+7
| | | | | $ find * -type f |xargs perl contrib/scripts/spdx.pl $ git rm contrib/scripts/spdx.pl
* ifupdown: fix crash loading ifupdown settings with empty entries like ↵Thomas Haller2019-08-241-0/+2
| | | | | | | | bridge-ports and mappings Fixes: d35d3c468a30 ('settings: rework tracking settings connections and settings plugins') https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/235
* ifupdown/tests: add test with duplicate interfacesThomas Haller2019-08-242-0/+33
| | | | | | | | | | This file causes a crash [1], add it to the tests. Note that the test only check parsing the file and the crash happens in the "upper" layers. So, it's not really a test for the crash. But at least have such a file in our repository. [1] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/235
* ifupdown/tests: cleanup tests by freeing Expected variable with nm_auto()Thomas Haller2019-08-241-45/+21
|
* ifupdown: fix assertion during logging %NULL storage in load_eni_ifaces()Thomas Haller2019-08-061-1/+1
| | | | (cherry picked from commit ddb08e3602607a5e137c05c4da25e2b4ab4166dd)
* settings: no longer honor read-only flag to prevent modifying connection ↵Thomas Haller2019-07-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | profiles Note that we now support keyfiles from read-only storage in /usr/lib. Note also that we do support modifying and deleting these profiles. That works by placing a shadowing profile to /etc or /run. Surely this is questionable. It means that once the user uses D-Bus to modify/delete a profile in /usr/lib, that profile becomes forever shadowed by a different file, and there is no D-Bus API to return to the original file. The user would have to drop the shadowing storages from the file system. That is a problem. But on the other hand, disallowing changes to such read-only profiles is not very useful either. If you no longer can use D-Bus to modify such profiles, what's the value here? How are applications supposed to handle such profiles if there is no D-Bus API to do something sensible to them? So, whatever problems read-only profiles and this shadowing causes, I don't think that the solution is to entirely disallow changes via D-Bus. At that point, we can just as well allow changes to profiles from ifupdown. Note that you still cannot modify the profile directly (as the ifupdown plugin does not support that). But you can delete the profile (either temporarily via a tombstone in /run or permanently via a tombstone in /etc). You also can make the profile in-memory, and take it from there. Note that if you try to later store the in-memory profile to disk again, then it depends on the order of settings plugins whether that succeeds. If you have "plugins=keyfile,ifupdown", then the profile will be stored as keyfile to /etc. If you have "plugins=ifupdown,keyfile", then the modification will only be done in /run and the "to-disk" command silently ignored (there really is no better solution).
* core: add and use NM_MATCH_SPEC_*_TAG defines instead of plain stringsThomas Haller2019-07-251-1/+2
| | | | | | The define is better, because then we can grep for all the occurances where they are used. The plain text like "mac:" is not at all unique in our source-tree.
* settings: rework tracking settings connections and settings pluginsThomas Haller2019-07-168-352/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Completely rework how settings plugin handle connections and how NMSettings tracks the list of connections. Previously, settings plugins would return objects of (a subtype of) type NMSettingsConnection. The NMSettingsConnection was tightly coupled with the settings plugin. That has a lot of downsides. Change that. When changing this basic relation how settings connections are tracked, everything falls appart. That's why this is a huge change. Also, since I have to largely rewrite the settings plugins, I also added support for multiple keyfile directories, handle in-memory connections only by keyfile plugin and (partly) use copy-on-write NMConnection instances. I don't want to spend effort rewriting large parts while preserving the old way, that anyway should change. E.g. while rewriting ifcfg-rh, I don't want to let it handle in-memory connections because that's not right long-term. -- If the settings plugins themself create subtypes of NMSettingsConnection instances, then a lot of knowledge about tracking connections moves to the plugins. Just try to follow the code what happend during nm_settings_add_connection(). Note how the logic is spread out: - nm_settings_add_connection() calls plugin's add_connection() - add_connection() creates a NMSettingsConnection subtype - the plugin has to know that it's called during add-connection and not emit NM_SETTINGS_PLUGIN_CONNECTION_ADDED signal - NMSettings calls claim_connection() which hocks up the new NMSettingsConnection instance and configures the instance (like calling nm_settings_connection_added()). This summary does not sound like a lot, but try to follow that code. The logic is all over the place. Instead, settings plugins should have a very simple API for adding, modifying, deleting, loading and reloading connections. All the plugin does is to return a NMSettingsStorage handle. The storage instance is a handle to identify a profile in storage (e.g. a particular file). The settings plugin is free to subtype NMSettingsStorage, but it's not necessary. There are no more events raised, and the settings plugin implements the small API in a straightforward manner. NMSettings now drives all of this. Even NMSettingsConnection has now very little concern about how it's tracked and delegates only to NMSettings. This should make settings plugins simpler. Currently settings plugins are so cumbersome to implement, that we avoid having them. It should not be like that and it should be easy, beneficial and lightweight to create a new settings plugin. Note also how the settings plugins no longer care about duplicate UUIDs. Duplicated UUIDs are a fact of life and NMSettings must handle them. No need to overly concern settings plugins with that. -- NMSettingsConnection is exposed directly on D-Bus (being a subtype of NMDBusObject) but it was also a GObject type provided by the settings plugin. Hence, it was not possible to migrate a profile from one plugin to another. However that would be useful when one profile does not support a connection type (like ifcfg-rh not supporting VPN). Currently such migration is not implemented except for migrating them to/from keyfile's run directory. The problem is that migrating profiles in general is complicated but in some cases it is important to do. For example checkpoint rollback should recreate the profile in the right settings plugin, not just add it to persistent storage. This is not yet properly implemented. -- Previously, both keyfile and ifcfg-rh plugin implemented in-memory (unsaved) profiles, while ifupdown plugin cannot handle them. That meant duplication of code and a ifupdown profile could not be modified or made unsaved. This is now unified and only keyfile plugin handles in-memory profiles (bgo #744711). Also, NMSettings is aware of such profiles and treats them specially. In particular, NMSettings drives the migration between persistent and non-persistent storage. Note that a settings plugins may create truly generated, in-memory profiles. The settings plugin is free to generate and persist the profiles in any way it wishes. But the concept of "unsaved" profiles is now something explicitly handled by keyfile plugin. Also, these "unsaved" keyfile profiles are persisted to file system too, to the /run directory. This is great for two reasons: first of all, all profiles from keyfile storage in fact have a backing file -- even the unsaved ones. It also means you can create "unsaved" profiles in /run and load them with `nmcli connection load`, meaning there is a file based API for creating unsaved profiles. The other advantage is that these profiles now survive restarting NetworkManager. It's paramount that restarting the daemon is as non-disruptive as possible. Persisting unsaved files to /run improves here significantly. -- In the past, NMSettingsConnection also implemented NMConnection interface. That was already changed a while ago and instead users call now nm_settings_connection_get_connection() to delegate to a NMSimpleConnection. What however still happened was that the NMConnection instance gets never swapped but instead the instance was modified with nm_connection_replace_settings_from_connection(), clear-secrets, etc. Change that and treat the NMConnection instance immutable. Instead of modifying it, reference/clone a new instance. This changes that previously when somebody wanted to keep a reference to an NMConnection, then the profile would be cloned. Now, it is supposed to be safe to reference the instance directly and everybody must ensure not to modify the instance. nmtst_connection_assert_unchanging() should help with that. The point is that the settings plugins may keep references to the NMConnection instance, and so does the NMSettingsConnection. We want to avoid cloning the instances as long as they are the same. Likewise, the device's applied connection can now also be referenced instead of cloning it. This is not yet done, and possibly there are further improvements possible. -- Also implement multiple keyfile directores /usr/lib, /etc, /run (rh #1674545, bgo #772414). It was always the case that multiple files could provide the same UUID (both in case of keyfile and ifcfg-rh). For keyfile plugin, if a profile in read-only storage in /usr/lib gets modified, then it gets actually stored in /etc (or /run, if the profile is unsaved). -- While at it, make /etc/network/interfaces profiles for ifupdown plugin reloadable. -- https://bugzilla.gnome.org/show_bug.cgi?id=772414 https://bugzilla.gnome.org/show_bug.cgi?id=744711 https://bugzilla.redhat.com/show_bug.cgi?id=1674545
* settings: don't implement settings plugins as singletonsThomas Haller2019-06-261-6/+1
| | | | | | | | | | | | | | | The settings plugins are created by NMSettings when the plugin gets loaded. There is no need for these instances to be singletons or to have a singleton getter. Also, while in practice we create a settings plugin instance of each type only once, there is nothing that would prevent creating multiple instances. Hence, having a singleton getter is not right. What is however useful, is to track them and block shutdown via nm_shutdown_wait_obj_register*(). While the actual waiting is not yet implemented, we should mark the plugin instances to block shutdown (in the future).
* settings: remove unused NMSettingsConnection.supports_secrets() functionThomas Haller2019-06-131-14/+0
|
* settings: drop nm_settings_plugin_initialize() and initialize on demandThomas Haller2019-06-131-4/+17
| | | | | | | | As nm_settings_plugin_initialize() could not fail (it returned no value indicating failure), there is no reason to explicitly call this. Instead just initialize the plugin when needed. Also, we don't need the plugin to initialize early before nm_settings_plugin_get_connections().
* all: drop empty first line from sourcesThomas Haller2019-06-115-5/+0
| | | | git ls-files -z -- ':(exclude)src/settings/plugins/keyfile/tests/keyfiles' | xargs -0 -n1 sed -i '1 { /^$/d }'
* all: drop emacs file variables from source filesThomas Haller2019-06-119-9/+0
| | | | | | | | | | | | | | | | | | | | | | We no longer add these. If you use Emacs, configure it yourself. Also, due to our "smart-tab" usage the editor anyway does a subpar job handling our tabs. However, on the upside every user can choose whatever tab-width he/she prefers. If "smart-tabs" are used properly (like we do), every tab-width will work. No manual changes, just ran commands: F=($(git grep -l -e '-\*-')) sed '1 { /\/\* *-\*- *[mM]ode.*\*\/$/d }' -i "${F[@]}" sed '1,4 { /^\(#\|--\|dnl\) *-\*- [mM]ode/d }' -i "${F[@]}" Check remaining lines with: git grep -e '-\*-' The ultimate purpose of this is to cleanup our files and eventually use SPDX license identifiers. For that, first get rid of the boilerplate lines.
* ifupdown: replace g_strsplit_set() by nm_utils_strsplit_set()Thomas Haller2019-04-122-25/+17
| | | | | Note that nm_utils_strsplit_set() drops empty tokens (consecutive delimiters). This is what all callers here want anyway.
* ifupdown: fix connection iteratorYupeng Chang2019-04-021-1/+1
| | | | | | | Fixes: 6aa66426a416 ('settings/ifupdown: merge eni_ifaces and connections hashes in plugin') https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/145 https://bugzilla.redhat.com/show_bug.cgi?id=1694912
* settings/ifupdown: fix ifupdown plugin after merging eni_ifaces and ↵Thomas Haller2019-02-151-2/+4
| | | | | | | | | | | | | connections hashes The @eni_ifaces hash may now contain %NULL elements. They are only markers for interface names, but are not actual connections. They must be skipped. Fixes: 6aa66426a4168b3db115646f410bcb5deea6847b https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/124
* all: drop unnecessary includes of <errno.h> and <string.h>Thomas Haller2019-02-125-7/+0
| | | | | "nm-macros-interal.h" already includes <errno.h> and <string.h>. No need to include it everywhere else too.
* all: minor coding style fixes (space before parentheses)Thomas Haller2019-02-111-2/+2
|
* build: meson: Add trailing commasIñigo Martínez2018-12-202-7/+7
| | | | | | | Add missing trailing commas that avoids getting noise when another file/parameter is added and eases reviewing changes[0]. [0] https://gitlab.gnome.org/GNOME/dconf/merge_requests/11#note_291585
* settings/ifupdown: fix block_name typo in initialize()Michael Biebl2018-10-231-1/+1
| | | | | | | | | | | | | | In commit f0938948bc506f2bddda2d574b0890cb4b67b4c4 a typo creeped in and "block->name" got replaced by "block_name". Variable block_name is used for a different purpose and not initialized at this point. As a result g_str_has_prefix crashes with a segfault. Spotted by Bernhard Übelacker <bernhardu@mailbox.org> Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911621 Fixes: f0938948bc506f2bddda2d574b0890cb4b67b4c4 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/31
* all: remove \n endings from log callsLubomir Rintel2018-10-121-10/+10
| | | | | | The extra newlines look bad when logging to the console. https://github.com/NetworkManager/NetworkManager/pull/223
* settings/ifupdown/tests: avoid asserting on an arrayLubomir Rintel2018-09-191-2/+2
| | | | | | | | | | | char[] is not a char *; it can not go NULL. test-ifupdown.c:147:27: error: address of array 'n->name' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion] g_assert (b->name && n->name); test-ifupdown.c:156:27: error: address of array 'm->key' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion] g_assert (k->key && m->key);
* settings/ifupdown: use _NMLOG() macros for loggingThomas Haller2018-09-063-58/+88
| | | | | | | | Does not address the issues that the existing logging is much too verbose and does not provide necessary context for what it's complaining. The logging messages should be improved. At least, the logging macro gives all messages a "ifupdown: " prefix.
* settings/ifupdown: various cleanup in nms-ifupdown-parser.cThomas Haller2018-09-061-47/+32
|
* settings/ifupdown: optimize allocating parser dataThomas Haller2018-09-063-18/+24
|
* settings/ifupdown: use c-list for data structure of ifupdown parserThomas Haller2018-09-065-127/+114
| | | | We already have a linked-list implementation. Use it.
* settings/ifupdown: don't use global variables for /e/n/i parserThomas Haller2018-09-064-185/+163
|