summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* vpn: send firewall zone to firewalld also for VPN connections (rh #1065948)jk/vpn-firewall-zone-rh1065948Jiří Klimeš2015-07-031-7/+82
| | | | https://bugzilla.redhat.com/show_bug.cgi?id=1065948
* platform: avoid assuming a permanent address is an ethernet addressLubomir Rintel2015-07-021-2/+0
| | | | | This gets called for all links via link_get_permanent_address(). This could easily be an infiniband address and we don't want to assert it's not.
* infiniband: don't crash if the parent interface is not yet thereLubomir Rintel2015-07-021-0/+3
| | | | Just bail politely just like vlans do.
* build: fix $nmlibdir to be "/usr/lib/NetworkManager"Thomas Haller2015-07-021-1/+1
| | | | | | Was detected as "/usr/lib64/NetworkManager". Fixes: 32dbc51dbd2842a6196bc84f9c303bee9c16a2de
* config/test: fix test failiure due to invalid paths for out-of-tree buildThomas Haller2015-07-022-3/+4
| | | | Fixes: 25b23f931ec0d26b3f68720e8d9ab299d4c43cdb
* platform: fix wrong removal of generated enumsThomas Haller2015-07-021-2/+2
| | | | Fixes: a130f72d745bcfef8aca228f40e8d94ce18bbaef
* libnm/keyfile: fix compile warning about uninitialized variableThomas Haller2015-07-021-1/+1
| | | | Fixes: 71323122c6b755cfc50ce93c07d6758b45c19cba
* platform: mark internal enums to be skipped by glib-mkenumsThomas Haller2015-07-021-4/+4
| | | | | No need to generate glib type information for these internal enums.
* config: merge branch 'th/nm-config-intern-bgo750558'Thomas Haller2015-07-0214-186/+1501
|\ | | | | | | | | | | | | | | | | | | | | Add write support to NMConfig. Also, add a new configuration directory /usr/lib/NetworkManager/conf.d/ which allows us to install configuration snippets under /usr, instead of /etc. https://bugzilla.gnome.org/show_bug.cgi?id=738853 https://bugzilla.gnome.org/show_bug.cgi?id=750558
| * config/test: add test for set_values()Thomas Haller2015-07-021-10/+356
| |
| * config: add write support to atomic-sectionsThomas Haller2015-07-026-24/+253
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already support setting configuration values, either: (1) set any internal section, i.e. groups starting with [.intern*]. Those values don't ever interfere with that the user can configure. (2) set individual properties that overwrite user configuration. When doing that, we record the value from user configuration and on load, we reject our internal overwrite if the user configuration changed in the meantime. This is done by storing the values with ".set." and ".was." prefixes. Now add support for "atomic sections". In this case, certain groups can be marked as "atomic". When writing to such sections, we overwrite the entire user-provided setting. We also record the values from user configuration, and reject our internal value if we notice modifications. This basically extends (2) from individual properties to the entire section.
| * config: add write support for NMConfigThomas Haller2015-07-027-48/+677
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Internal configuration is written as keyfile to NMSTATEDIR"/NetworkManager-intern.conf" Basically, the content of this file is merged with user configuration from "NetworkManager.conf" files. After loading the configuration, NMConfig exposes a merged view of user-provided settings and internal overwrites. All sections/groups named [.intern*] are reserved for internal configuration values. They can be written by API, but are ignored when the user sets them via "NetworkManager.conf". For these internal sections, no conflicts can arise. We can also overwrite individual properties from user configuration. In this case, we store the value we want to set, but also remember the value that the user configuration had, at the time of setting. If on a later reload the user configuration changed, we ignore our internal value -- as we assume that the user modified the value afterwards. We can also hide/delete value from user configuration. This works on a per-setting basis.
| * settings: enable "ibft" plugin by default together with "ifcfg-rh"Thomas Haller2015-07-025-67/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally, ibft settings were handled by "ifcfg-rh" plugin. Later, we added a separate "ibft" plugin and moved the functionality there. The problem was that users quite possibly had a configuration like [main] plugins=ifcfg-rh in their "NetworkManager.conf". That meant, after upgrade users would no longer have ibft support. We fixed that by installing "/etc/NetworkManager/conf.d/10-ibft-plugin.conf" which was read after the main file and contained: [main] plugins+=ibft We no longer want to install configuration snippets with our core packages to /etc. Avoid the regression by changing the meaning of "ifcfg-rh". By enabling "ifcfg-rh" you now implicitly enable "ibft" plugin as well. This can be turned off via "no-ibft". And you can continue to enable "ibft" plugin alone.
| * config: fix setting default configuration for 'main.plugins'Thomas Haller2015-07-022-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'main.plugins' is the only configuration options for which we have a default value and which we always want to set. This property has a compile time default and can be set via command line, fix the logic to set the value. The proper way is: - first set it (always) to the compile time default - then read the configuration files, which potentially modify the value. - finally, if set via command line, overwrite it because command line always wins. Also comment-out the setting from our default file in "contrib/fedora/rpm/NetworkManager.conf". We don't really need it to be configured there, as we have a compile time default. Commenting it out makes this clearer to the user. Note that we cannot drop "10-ibft-plugin.conf" snippet from NetworkManager package, because many users might have an old "NetworkManager.conf" file with "plugin=ifcfg-rh". This is a change in behavior if the user has no explicit "plugins=ifcfg-rh" setting but followed by "plugins+=ibft".
| * contrib/rpm: update spec file to install configuration snippets in ↵Thomas Haller2015-07-021-8/+8
| | | | | | | | | | | | | | | | "/usr/lib/NetworkManager/conf.d" Don't move "10-ibft-plugin.conf", because we need it to be read *after* "NetworkManager.conf". Many users might have an old "NetworkManager.conf" file that contains "plugin=ifcfg-rh".
| * config: read configuration directory "/usr/lib/NetworkManager/conf.d"Thomas Haller2015-07-026-54/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows packages to install their configuration snippets to "/usr/", which is a better place for system-provided configuration files then "/etc". "/usr/lib/NetworkManager/conf.d/" is read first, so that the values in /etc have higher priority. In general, we want to move system-provided configuration away from /etc, so that a user can do a "factory-reset" by purging /etc. https://bugzilla.gnome.org/show_bug.cgi?id=738853
| * build: add nmlibdir defineThomas Haller2015-07-021-0/+2
|/
* config: merge branch 'th/nm-config-intern-bgo750558' (early part)Thomas Haller2015-07-0236-404/+1337
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Early part of fixes and improvements to NMConfig. This is mostly refactoring and adding of new utility functions. But it also fixes the way how to parse configuration options from "NetworkManager.conf" keyfile. So this brings behavioral changes in the way how we parse the configuration. But unless the user had unusual configurations (whitespaces, backslash escapes), there should be no visible changes. https://bugzilla.gnome.org/show_bug.cgi?id=738853
| * config: only handle 'option+' and 'option-' keys for known settingsThomas Haller2015-07-026-31/+134
| | | | | | | | | | | | | | | | | | It is wrong to blindly merge keys that have an 'option+' or 'option-'. Merging options is only possibly when we understand what the option means and how to merge it. No longer handle every setting but only those that are explicitly known to be string-lists (or device-specs).
| * core: add nm_match_spec_join() functionThomas Haller2015-07-023-1/+95
| | | | | | | | | | | | We have a special implemenation nm_match_spec_split() to split a string. We also need the reverse operation to be able to convert a list of specs to string without loss.
| * libnm: add @deep_copy argument to _nm_utils_strv_to_slist() and ↵Thomas Haller2015-07-026-24/+34
| | | | | | | | _nm_utils_slist_to_strv()
| * libnm: expose strv utils function in internal header nm-core-internal.hThomas Haller2015-07-022-6/+6
| |
| * config/trivial: add code commentThomas Haller2015-07-021-0/+7
| |
| * config: add NMConfigGetValueFlags argument to nm_config_data_get_value()Thomas Haller2015-07-026-34/+76
| | | | | | | | | | | | | | | | | | | | | | | | In some cases we want the returned value to be stripped. In some cases, we want to read the raw value instead of the string parsed by GKeyFile. Add an flags argument to nm_config_data_get_value(). It is up to the caller to determine the exact meaning (and whether to strip). By adding the flags argument, the caller can get the desired behavior easier without having to workaround it afterwards. But more importantly, it becomes apparent that there are different ways to retrieve the value and the caller should decide on the details.
| * config: strip white space from configuration valuesThomas Haller2015-07-022-6/+6
| | | | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=750659 https://bugzilla.redhat.com/show_bug.cgi?id=1229861
| * utils: strip whitespace for device spec in nm_match_spec_split()Thomas Haller2015-07-022-10/+54
| | | | | | | | | | Via escape sequences, the user still can specify trailing and leading white spaces: such as "\s \s" will result in 3 spaces.
| * config: add config utility accessorsThomas Haller2015-07-022-0/+56
| |
| * config: ensure nm_config_get_plugins() to return stripped valuesThomas Haller2015-07-022-7/+4
| |
| * config: fix usage of g_key_file_get_value() vs. g_key_file_get_string()Thomas Haller2015-07-023-29/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | g_key_file_get_value() returns the raw value as stored in the file. When accessing a string value, in most cases it is correct to use g_key_file_get_string() instead. When working with internals, such as comparing two keyfiles for equality, g_key_file_get_value() is correct. When parsing booleans, we parse it based on the raw value. Fix the usages. This is a change in behavior if the config file contained unusual strings.
| * config: log configuration at startup and on reloadThomas Haller2015-07-025-0/+95
| |
| * config: add defines for keyfile groups to "nm-config.h"Thomas Haller2015-07-027-39/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some plugins had their local defines for the name of the sections and keys in NMConfig. Move those defines to "nm-config.h". Usually plugins make use of code in core, but not the other way round. Defining the names inside "nm-config.h" is no violation of that because the config section names are anyway not local to the plugin, but global in the shared name-space with other settings. For example, another plugins shouldn't reuse the section "ifnet". For that reason, it is correct and consistent to move these defines to "nm-config.h". We don't use those names in core, we merely signal their existance.
| * config: use nm_config_data_get_value_boolean()Thomas Haller2015-07-022-30/+12
| | | | | | | | | | This removes duplicate parsing, but also makes all places use the same str-to-boolean convention.
| * config: add nm_config_data_get_value_boolean()Thomas Haller2015-07-022-0/+15
| |
| * config: add nm_config_parse_boolean() functionThomas Haller2015-07-022-29/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | Add function to parse as boolean according our NMConfig convention. Split this out from nm_config_keyfile_get_boolean() so that we can use it independently. Also, change the return type to gint, so that one might pass -1 to indicate an invalid/missing boolean value. Thereby also don't log a warning in nm_config_keyfile_get_boolean() We don't want to log a warning every time we access a keyfile value. If we want to warn about invalid values, we should do it once after the configuration is loaded. And then we should not only do it for booleans, but for other types as well.
| * config: add macros NM_CONFIG_GET_DATA and NM_CONFIG_GET_DATA_ORIGThomas Haller2015-07-025-8/+12
| |
| * config: get rid of @error argument to nm_config_data_get_value()Thomas Haller2015-07-026-41/+29
| | | | | | | | | | We don't use this argument. A failure to retrieve a key is (for every practical purpose) the same as no such key.
| * libnm: consider ordering for _nm_keyfile_equals()Thomas Haller2015-07-024-7/+63
| | | | | | | | | | | | GKeyFile considers the order of the files, so add a possibility to check whether to keyfiles are equal -- also with respect to the order of the elements.
| * libnm-keyfile/test: fix missing assertion in testThomas Haller2015-07-021-2/+2
| |
| * libnm: add keyfile utility functionsThomas Haller2015-07-024-64/+88
| |
| * config: reload also no-auto-default stateThomas Haller2015-07-021-1/+4
| | | | | | | | | | | | | | | | The content of the no-auto-default state file is part of NMConfig. During a reload, also reload that. This way, a user could edit the no-auto-default file and it would be properly reloaded.
| * config: fix evaluation of no-auto-default settingThomas Haller2015-07-023-82/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to merge the spec list for no-auto-default from keyfile with the content of the state file. Since the addition of the "except:" spec this is wrong. For example, if the user configured: no-auto-default=except:mac:11:11:11:11:11 and statefile contained "11:11:11:11:11" and "22:22:22:22:22", we would wrongly not match "11:11:11:11:11". The two lists must be kept separate, so that devices that are blocked by internal decision always match. This separation is also clearer. Now the spec list is devided into a part that comes from user configuration, and a part that comes from internal decision.
| * config: refactor processing of 'option+' and 'option-' config settingsThomas Haller2015-07-026-23/+87
| | | | | | | | | | | | | | | | | | We have a hack to extend GKeyFile to support specifying an 'option+' key. Also add support for 'option-'. Options that make use of these modifiers can only be string lists. So do the concatenation not based on plain strings, but by treating the values as string lists. Also, don't add duplicates.
| * config: add nm_config_keyfile_set_string_list() utils functionThomas Haller2015-07-022-0/+38
| |
| * config: add NM_CONFIG_KEYFILE_LIST_SEPARATOR defineThomas Haller2015-07-022-1/+3
| |
| * config/trivial: rename defines for default settingsThomas Haller2015-07-021-17/+17
| | | | | | | | Make them match to the variable names that we assign them to.
| * config: change examples for command line arguments to system defaultThomas Haller2015-07-024-14/+13
| |
| * test: add nmtst_assert_success() utilThomas Haller2015-07-021-0/+8
| |
| * macros: add nm_strstrip() utilThomas Haller2015-07-021-0/+9
| |
| * libnm: add _nm_utils_strv_cleanup() functionThomas Haller2015-07-022-0/+35
| |
| * glib-compat: backport g_key_file_save_to_file()Thomas Haller2015-07-021-0/+37
| |