summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* libnm-core: team: fix runner sys_prio default valuefg/team_sys_prio_default-rh1533810Francesco Giudici2018-01-151-1/+1
|
* cli: get team defaults from setting header filesFrancesco Giudici2018-01-152-6/+6
| | | | | this allows centralizing default values definition and allows quicker and safer update of default values.
* libnm-core: docs update requires also settings-docs.h.in updateFrancesco Giudici2018-01-121-1/+1
| | | | Fixes: 112f8bd5aff2c5d543699d968f56c7f98be07eec
* core/trivial: fix whitespaceThomas Haller2018-01-121-1/+1
|
* libnm-core: update team.runner descriptionFrancesco Giudici2018-01-121-0/+4
| | | | https://bugzilla.redhat.com/show_bug.cgi?id=1533799
* dns: merge branch 'bg/dns-domains-pt1-bgo746422'Beniamino Galvani2018-01-127-84/+117
|\ | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=746422
| * dns: introduce routing domainsBeniamino Galvani2018-01-127-27/+64
| | | | | | | | | | | | | | | | | | | | | | Similarly to what systemd-resolved does, introduce the concept of "routing" domain, which is a domain in the search list that is used only to decide the interface over which a query must be forwarded, but is not used to complete unqualified host names. Routing domains are those starting with a tilde ('~') before the actual domain name. Domains without the initial tilde are used both for completing unqualified names and for the routing decision.
| * dns: systemd-resolved: use generic ip-config functionsBeniamino Galvani2018-01-121-35/+10
| |
| * dns: export search list in the D-Bus "domain" attributeBeniamino Galvani2018-01-121-9/+20
| | | | | | | | | | | | | | The "domain" key of the D-Bus configuration dictionary specifies the domains a configuration applies to. In DNS code we consider domains and searches as equivalent, so they should be exported via D-Bus using the same logic used to populate resolv.conf and for plugins.
| * dns: add @dup argument to add_dns_domains() and add_string_item()Beniamino Galvani2018-01-121-13/+14
| | | | | | | | | | Add a @dup argument that tells whether the new item should be duplicated.
| * dns: split out domains retrievalBeniamino Galvani2018-01-121-16/+25
|/
* build/meson: merge branch 'meson-fixes'Thomas Haller2018-01-1210-19/+22
|\ | | | | | | https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00055.html
| * po: skip translation for file in meson build directoryThomas Haller2018-01-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, having a meson build directory along autotools, lets `make check` fail with The following files contain translations and are currently not in use. Please consider adding these to the POTFILES.in file, located in the po/ directory. build/data/org.freedesktop.NetworkManager.policy.in If some of these files are left out on purpose then please add them to POTFILES.skip instead of POTFILES.in. A file 'missing' containing this list of left out files has been written in the current directory. Please report to http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager if [ -r missing -o -r notexist ]; then \ exit 1; \ fi Yes, meson does not require that the build directory is named "build" and this fix only works for the default case.
| * gitignore: ignore generated clients/common/settings-docs.h fileThomas Haller2018-01-121-1/+2
| |
| * build: Rename settings-docs.c fileIñigo Martínez2018-01-126-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | The `settings-docs.c` file is generated by processing the `nm-property-docs.xml` file. Although this works in autotools, the `.c` extension makes meson not to handle it properly. Given the fact that it only contains a number of defines it makes sense to change its extension to `.h` an use it as a header. This also makes meson to handle it properly and build it before its used. https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00057.html
| * meson: Fix missing symbols in libnm-glibIñigo Martínez2018-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The following symbols are missing from the libnm-glib library: * libnm_glib_get_network_state * libnm_glib_init * libnm_glib_register_callback * libnm_glib_shutdown * libnm_glib_unregister_callback This has been changed by linking `libdeprecated_nm_glib` as a whole. https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00056.html
| * meson: Slightly simplify jansson soname retrievalIñigo Martínez2018-01-121-2/+1
|/ | | | | | | The process for retrieving jansson's soname has been slightly simplified. https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00054.html
* build/meson: use variables for ldflags and linker-scriptThomas Haller2018-01-1120-125/+59
|
* build/meson: remove unnecessary square bracketsThomas Haller2018-01-111-1/+1
|
* secret-agent: construct the dbus proxy for async agent with the correct bus nameLubomir Rintel2018-01-111-2/+2
| | | | | | | The asynchronous secret agent initialization doesn't work at all due to a rather silly typo. Oops. While at it, fix a whitespace error too.
* build: fix type on Makefile.am which breaks buildThomas Haller2018-01-101-1/+1
| | | | Fixes: 97f06c3a6d7c984b3bc0f61dcf2885fed7a948c7
* ppp: merge branch 'bg/ppp-set-ifindex-bgo1515829'Beniamino Galvani2018-01-1010-101/+265
|\ | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1515829
| * ppp: update interface name in the plugin after NM changes itBeniamino Galvani2018-01-101-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When NM knows of the ifindex/name of the new PPP interface (through the SetIfindex() call), it renames it. This can race with the pppd daemon, which issues ioctl() using the interface name cached in the global 'ifname' variable: ... NetworkManager[27213]: <debug> [1515427406.0036] ppp-manager: set-ifindex 71 pppd[27801]: sent [CCP ConfRej id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] NetworkManager[27213]: <debug> [1515427406.0036] platform: link: setting 'ppp5' (71) name dsl-ppp pppd[27801]: sent [IPCP ConfAck id=0x2 <addr 3.1.1.1>] pppd[27801]: ioctl(SIOCSIFADDR): No such device (line 2473) pppd[27801]: Interface configuration failed pppd[27801]: Couldn't get PPP statistics: No such device ... Fortunately the variable is exposed to plugins and so we can turn the SetIfindex() D-Bus call into a synchronous one and then update the value of the 'ifname' global variable with the new interface name assigned by NM.
| * ppp/trivial: rename fieldBeniamino Galvani2018-01-101-9/+9
| |
| * ppp: introduce SetIfindex pppd plugin D-Bus methodBeniamino Galvani2018-01-1010-94/+191
| | | | | | | | | | | | | | | | | | | | | | | | If IPV6CP terminates before IPCP, pppd enters the RUNNING phase and we start IP configuration without having an IP interface set, which triggers assertions. Instead, add a SetIfindex() D-Bus method that gets called by the plugin when pppd becomes RUNNING. The method sets the IP ifindex of the device and starts IP configuration. https://bugzilla.redhat.com/show_bug.cgi?id=1515829
| * device: add nm_device_set_ip_ifindex()Beniamino Galvani2018-01-102-0/+55
|/
* build: merge branch 'th/build-meson-on-travis'Thomas Haller2018-01-1025-126/+146
|\ | | | | | | https://github.com/NetworkManager/NetworkManager/pull/54
| * travis: enable matrix build for gcc/clang and autotools/mesonth/build-meson-on-travisThomas Haller2018-01-101-34/+43
| |
| * travis: add meson builds to travis-ciThomas Haller2018-01-101-4/+40
| |
| * build/meson: unconditionally use linker version scriptsThomas Haller2018-01-1020-90/+64
| | | | | | | | | | | | | | We also unconditionally use them with autotools. Also, the detection for have_version_script does not seem correct to me. At least, it didn't work with clang.
| * build/meson: fix build without have_version_scriptThomas Haller2018-01-101-5/+3
| | | | | | | | | | We always need to declare the linker_script_* variables, because they are used (unconditionally) as a dependency, even without have_version_script.
| * build/meson: disable unit tests that are known to failThomas Haller2018-01-101-2/+3
| | | | | | | | | | | | | | | | I think it's because meson doesn't run the tests in their own D-Bus session, hence the use the system service. automake solves this running all tests via ./tools/run-nm-test.sh, which knows how to prepare a suitable environment for the tests.
| * build/meson: fix build without introspectionThomas Haller2018-01-101-8/+10
| | | | | | | | nm_settings_docs is only defined with enable_introspection.
| * build/meson: fix gir dependency with building without fake-typelibsThomas Haller2018-01-101-6/+5
| |
| * build/meson: fix build with -D session_tracking=no -D systemdsystemunitdir=noThomas Haller2018-01-101-1/+2
| | | | | | | | | | The variable enable_consolekit is used below, outside the if. We always must set it.
| * build/meson: rename config_plugin_ibft option to just ibftThomas Haller2018-01-103-9/+9
|/
* build/meson: meson improvementsThomas Haller2018-01-1051-360/+244
|\ | | | | | | | | https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00039.html https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00046.html
| * meson: Use string variables extensivelyIñigo Martínez2018-01-1014-43/+54
| | | | | | | | | | | | | | The strings holding the names used for libraries have also been moved to different variables. This way they would be less error as these variables can be reused easily and any typing error would be quickly detected.
| * meson: Improve dependency systemIñigo Martínez2018-01-1045-320/+193
|/ | | | | | | | | | | | | | | | | | | | Some targets are missing dependencies on some generated sources in the meson port. These makes the build to fail due to missing source files on a highly parallelized build. These dependencies have been resolved by taking advantage of meson's internal dependencies which can be used to pass source files, include directories, libraries and compiler flags. One of such internal dependencies called `core_dep` was already in use. However, in order to avoid any confusion with another new internal dependency called `nm_core_dep`, which is used to include directories and source files from the `libnm-core` directory, the `core_dep` dependency has been renamed to `nm_dep`. These changes have allowed minimizing the build details which are inherited by using those dependencies. The parallelized build has also been improved.
* all: merge branch 'th/pr/53' (part 1)Thomas Haller2018-01-102-31/+42
|\ | | | | | | | | | | Partly merge pull request #52. https://github.com/NetworkManager/NetworkManager/pull/52
| * device: split per-directory factory functionPavel Šimerda2018-01-101-31/+38
| | | | | | | | | | | | | | | | | | In some cases we might want to load device plugins from multiple directories. A special case that I have in mind is to load plugins from build directory subdirectories in order to run NetworkManager from the build directory. [thaller@redhat.com: modify original patch]
| * build: print missing configured directoriesPavel Šimerda2018-01-101-0/+4
|/ | | | | | | Many of the configured directories default to being defined using existing directory configuration. As a result you usually don't see the actual directories that will be used. With the added directories you can at least assemble the information and thus see which directories will be used.
* build: Add meson build files to distributable filesIñigo Martínez2018-01-106-28/+143
| | | | | | | | | | | | | Although it is possible to generate distributable files on meson since version 0.41 by using the `ninja dist` command, autotools does different things that end up creating a different distributable file. meson build files have been added to autotools build files as distributable files, so the whole meson port would also be distributed. https://mail.gnome.org/archives/networkmanager-list/2018-January/msg00047.html
* dhcp: fix check for client-id in _set_client_id()Thomas Haller2018-01-091-0/+1
| | | | Fixes: 686afe531ab3774cd818feda8361de74101971f5
* all: merge branch 'th/policy-and-mdns'Thomas Haller2018-01-0926-622/+979
|\ | | | | | | https://github.com/NetworkManager/NetworkManager/pull/44
| * policy: merge IPv4 and IPv6 versions of device_ip_config_changed()Thomas Haller2018-01-091-45/+27
| |
| * core: implement setting MDNS setting for systemdThomas Haller2018-01-098-4/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The connection.mdns setting is a per-connection setting, so one might expect that one activated device can only have one MDNS setting at a time. However, with certain VPN plugins (those that don't have their own IP interface, like libreswan), the VPN configuration is merged into the configuration of the device. So, in this case, there might be multiple settings for one device that must be merged. We already have a mechanism for that. It's NMIP4Config. Let NMIP4Config track this piece of information. Although, stricitly speaking this is not tied to IPv4, the alternative would be to introduce a new object to track such data, which would be a tremendous effort and more complicated then this. Luckily, NMDnsManager and NMDnsPlugin are already equipped to handle multiple NMIPConfig instances per device (IPv4 vs. IPv6, and Device vs. VPN). Also make "connection.mdns" configurable via global defaults in NetworkManager.conf.
| * core: rework tracking config in dns-manager to use ifindexThomas Haller2018-01-099-581/+391
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't track the per-device configuration in NMDnsManager by the ifname, but by the ifindex. We should consistently treat the ifindex as the ID of a link, like kernel does. At the few places where we actually need the ifname, resolve it by looking into the platform cache. That is not necessarily the same as the ifname that is currently tracked by NMDevice, because netdev interfaces can be renamed, and NMDevice updates it's link properties delayed. However, the platform cache has the most recent notion of the correct interface name for an ifindex, so if we ever hit a race here, we do it now more correctly. This also temporarily drops support for mdns. Will be re-added next, but differently.
| * core/trivial: rename local variable in merge_one_ip_config()Thomas Haller2018-01-091-15/+15
| | | | | | | | | | Next commit will unify naming of variables, do a trivial rename first to make the diff smaller.
| * dns: rework pending request-queue in NMDnsSystemdResolvedThomas Haller2018-01-091-26/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had two separate queues, one for "SetLinkDNS" and one for "SetLinkDomains". Merge them into one, and track the operation as part of the new RequestItem structure. A visible change to before is that we now would make all requests per-interface first. Prevously, we would first make all SetLinkDNS requests (for all interfaces) and then all SetLinkDomains requests. It feels more correct to order the requests this way, not by type. The reason to merge is, that we will next get another operation and in the current scheme we would need 3 GQueue instances. While at it, refactor the code to use CList. We now anyway would need a new struct to track the operation, requiring to allocate and free it. Previously, we would only track the GVariant argument as data of the GQueue.