summaryrefslogtreecommitdiff
path: root/examples
Commit message (Collapse)AuthorAgeFilesLines
* examples: add ipv4.dhcp-client-id and ipv6.dhcp-duid to 30-anon.conf exampleth/dhcp-client-idThomas Haller2018-06-121-6/+31
|
* all: use the elvis operator wherever possibleLubomir Rintel2018-05-101-1/+1
| | | | | | | | | | | | | | | | | | | | | Coccinelle: @@ expression a, b; @@ -a ? a : b +a ?: b Applied with: spatch --sp-file ternary.cocci --in-place --smpl-spacing --dir . With some manual adjustments on spots that Cocci didn't catch for reasons unknown. Thanks to the marvelous effort of the GNU compiler developer we can now spare a couple of bits that could be used for more important things, like this commit message. Standards commitees yet have to catch up.
* all: remove consecutive empty linesBeniamino Galvani2018-04-304-4/+0
| | | | | | | Normalize coding style by removing consecutive empty lines from C sources and headers. https://github.com/NetworkManager/NetworkManager/pull/108
* libnm: rework checkpoint APIThomas Haller2018-04-041-25/+30
| | | | | | | | | | | | | | | | | | | | | | The libnm API fir checkpoints was only introduced with 1.11. It is not yet stable, so there is still time to adjust it. Note that this changes API/ABI of the development branch. Changes: - we only add async variants of the checkpoint functions. I believe that synchronous D-Bus methods are fundamentally flawed, because they mess up the ordering of events. Rename the async functions by removing the "_async" suffix. This matches glib style, for which the async form is also not specially marked. - for function that refere to a particular checkpoint (rollback and destroy), accept the D-Bus path as string, instead of an NMCheckpoint instance. This form is more flexible, because it allows to use the function without having a NMCheckpoint instance at hand. On the other hand, if one has a NMCheckpoint instance, he can trivially obtain the path to make the call.
* examples: improve checkpoint.py for python/giThomas Haller2018-04-041-49/+100
| | | | | | | | - make python2 and python3 compatible - support Checkpoint create flags (requires recent libnm for GI of flags) - support adjust-rollback-timeout command - print elapsed time in show output
* examples: add python utils for examplesThomas Haller2018-04-041-0/+72
| | | | | | | | | | | | | We need common operations from the python scripts. For example, to print the boot-time. Move such utils to a separate nmex.py file ("ex" for example). This file should contain helper functions that are pure python (or, if the have requirements, load them only on demand, so that examples that need those have additional dependencies). It should also be simple to extract individual helpers from nmex, so that the user can take an example, merge parts of nmex.py in, and modify it to his needs.
* checkpoint: generate GIR information for NMCheckpointCreateFlagsThomas Haller2018-04-041-0/+1
| | | | | | | Note that this changes API for checkpoint_create_async() in Python via GIR. Previously it would require an integer argument, now a flags argument. But this API is still unstable, it will be introduced with 1.12.
* all: drop trailing spacesThomas Haller2018-02-075-7/+7
|
* all: replace non-leading tabs with spacesThomas Haller2018-02-072-3/+3
| | | | | | We commonly only allow tabs at the beginning of a line, not afterwards. The reason for this style is so that the code looks formated right with tabstop=4 and tabstop=8.
* version: drop NM_VERSION_MAX_ALLOWED defines for internal buildThomas Haller2018-01-231-1/+0
| | | | | | It already defaults to the right value. We only need to define NM_VERSION_MIN_REQUIRED, so that parts of our internal build can make use of deprecated API.
* version: combine NM_VERSION_CUR_STABLE and NM_VERSION_NEXT_STABLEThomas Haller2018-01-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't need to have two version defines "CUR" and "NEXT". The main purpose of these macros (if not their only), is to make NM_AVAILABLE_IN_* and NM_DEPRECATED_IN_* macros work. 1) At the precise commit of a release, "CUR" and "NEXT" must be identical, because whenever the user configures NM_VERSION_MIN_REQUIRED and NM_VERSION_MAX_ALLOWED, then they both compare against the current version, at which point "CUR" == "NEXT". 2) Every other commit aside the release, is a development version that leads up the the next coming release. But as far as versioning is concerned, such a development version should be treated like that future release. It's unstable API and it may or may not be close to later API of the release. But we shall treat it as that version. Hence, also in this case, we want to set both "NM_VERSION_CUR_STABLE" and again NEXT to the future version. This makes NM_VERSION_NEXT_STABLE redundant. Previously, the separation between current and next version would for example allow that NM_VERSION_CUR_STABLE is the previously release stable API, and NM_VERSION_NEXT_STABLE is the version of the next upcoming stable API. So, we could allow "examples" to make use of development API, but other(?) internal code still restrict to unstable API. But it's unclear which other code would want to avoid current development. Also, the points 1) and 2) were badly understood. Note that for our previousy releases, we usually didn't bump the macros at the stable release (and if we did, we didn't set them to be the same). While using two macros might be more powerful, it is hard to grok and easy to forget to bump the macros a the right time. One macro shall suffice. All this also means, that *immediately* after making a new release, we shall bump the version number in `configure.ac` and "NM_VERSION_CUR_STABLE".
* all: require glib 2.40lr/glib-2-40Lubomir Rintel2018-01-188-40/+0
| | | | | | RHEL 7.1 and Ubuntu 14.04 LTS both have this. https://bugzilla.gnome.org/show_bug.cgi?id=792323
* meson: Improve dependency systemIñigo Martínez2018-01-101-18/+11
| | | | | | | | | | | | | | | | | | | | 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.
* build: use template files for enum types' sources generationIñigo Martínez2017-12-181-2/+2
| | | | | | | | | | Source files for enum types are generated by passing segments of the source code of the files to the `glib-mkenums` command. This patch removes those parameters where source code is used from meson build files by moving those segmeents to template files. https://mail.gnome.org/archives/networkmanager-list/2017-December/msg00057.html
* build: add initial support for meson build systemIñigo Martínez2017-12-132-0/+74
| | | | | | | | | | meson is a build system focused on speed an ease of use, which helps speeding up the software development. This patch adds meson support along autotools. [thaller@redhat.com: rebased patch and adjusted for iwd support] https://mail.gnome.org/archives/networkmanager-list/2017-December/msg00022.html
* examples: add python/gi example nm-connection-update-stable-id.pyThomas Haller2017-12-051-0/+116
| | | | | | The example script touches the stable-id of a connection. It does so blocking autoconnect, and was originally written to test that functionality.
* python: make dbus, gi examples, and debug-helper.py python3 readyYifan J2017-12-0424-99/+99
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=791121
* examples: add checkpoint example using python gobject-introspectionBeniamino Galvani2017-11-091-0/+130
|
* examples: add python example using VPN import codeThomas Haller2017-11-061-0/+74
| | | | Show how to load and use the VPN plugins from python.
* examples/js: add a javascript exampleLubomir Rintel2017-11-061-0/+184
| | | | Converted from python/gi/get_ip.py.
* examples: linker requires that library dependencies follow useLucas Rangit Magasweran2017-09-218-8/+8
| | | | | | | | | | | | | | | | | | | | On modern distributions, ld runs with the '--as-needed' option enabled by default, meaning library dependencies must come after files that require them. Also, this allows indirect linking so the build commands can be simplified. The alternative is to add the '-Wl,--no-as-needed' gcc option or use the top-level Makefile. Tested on: * Ubuntu 16.04.3 with gcc Ubuntu 5.4.1-8ubuntu1 * Fedora 24 with gcc Red Hat 6.1.1-3 Signed-off-by: Lucas Magasweran <lucas.magasweran@ieee.org> https://mail.gnome.org/archives/networkmanager-list/2017-September/msg00022.html https://mail.gnome.org/archives/networkmanager-list/2017-September/msg00023.html https://mail.gnome.org/archives/networkmanager-list/2017-September/msg00025.html
* examples: add setting-user-data.pyThomas Haller2017-05-061-0/+246
| | | | | | | | Add an example python script to show and set setting's user-data. This is useful, as nmcli still doesn't support user data. (cherry picked from commit 447c766f526ec8bc4f5aa109a5e261cf060d1042)
* build: declare build dependencies requiring "nm-core-enum-types.h"Thomas Haller2017-03-293-1/+12
| | | | | | | | | | | | | | | | cat <<-EOF > /tmp/glib-mkenums #!/bin/bash sleep 15 && /usr/bin/glib-mkenums "\$@" EOF chmod +x /tmp/glib-mkenums (export PATH="/tmp:$PATH" && git clean -fdx && ./autogen.sh && make -j20 all-am) (cherry picked from commit 68ab166f3894834af9473d42f5dab72e0ed15394)
* device: add spec "driver:" to match devicesThomas Haller2017-03-171-0/+11
| | | | | | | | Changing the MAC address of devices is known to fail with certain drivers. Add a device-spec to allow disabling it for for such devices. Related: https://bugzilla.gnome.org/show_bug.cgi?id=777523
* include: use double-quotes to include our own headersThomas Haller2017-03-093-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In practice, this should only matter when there are multiple header files with the same name. That is something we try to avoid already, by giving headers a distinct name. When building NetworkManager itself, we clearly want to use double-quotes for including our own headers. But we also want to do that in our public headers. For example: ./a.c #include <stdio.h> #include <nm-1.h> void main() { printf ("INCLUDED %s/nm-2.h\n", SYMB); } ./1/nm-1.h #include <nm-2.h> ./1/nm-2.h #define SYMB "1" ./2/nm-2.h #define SYMB "2" $ cc -I./2 -I./1 ./a.c $ ./a.out INCLUDED 2/nm-2.h Exceptions to this are - headers in "shared/nm-utils" that include <NetworkManager.h>. These headers are copied into projects and hence used like headers owned by those projects. - examples/C
* example: add example configuration snippet '30-anon.conf'th/stable-id-bgo776904Thomas Haller2017-01-091-0/+55
|
* examples: add DNS example with python and GObject introspectionBeniamino Galvani2016-12-121-0/+63
|
* examples/python: fix "import gi" in exampleThomas Haller2016-11-161-0/+2
| | | | | | | Otherwise there is a warning: from gi.repository import GLib, NM __main__:1: PyGIWarning: NM was imported without specifying a version first. Use gi.require_version(NM, 1.0) before import to ensure that the right version gets loaded.
* build: merge "examples/Makefile.am" into toplevel Makefileth/non-recursive-make-bgo772985Thomas Haller2016-10-2110-64/+0
|
* build: merge "examples/C/qt/Makefile.am" into toplevel MakefileThomas Haller2016-10-213-52/+0
|
* build: merge "examples/C/glib/Makefile.am" into toplevel MakefileThomas Haller2016-10-212-56/+1
|
* checkpoint: make python example accept multiple devices and timeoutBeniamino Galvani2016-09-261-22/+34
| | | | | Add a timeout parameter and allow passing multiple interfaces to make the script more useful for testing purposes.
* checkpoint: add python D-Bus exampleBeniamino Galvani2016-08-171-0/+63
|
* examples: fix crash in add-connection-libnmBeniamino Galvani2016-04-201-1/+1
| | | | Reported-by: Ali Nematollahi <alirezan1@gmail.com>
* man: fix typo in NetworkManager.conf manual and 10-ifcfg-rh-routes.sh commentThomas Haller2016-03-311-1/+1
|
* docs: replace spec.html with docbook D-Bus API referenceLubomir Rintel2016-03-261-1/+1
| | | | | | May use a lot of improvement (actually documenting the names and objects that use the interfaces in question), but at least this looks a lot better on developer.gnome.org.
* Fix missing commas in list-devices devtypes dict.Adrian Likins2016-03-021-5/+5
|
* device: add new NMDeviceType NM_DEVICE_TYPE_VETHThomas Haller2016-02-233-0/+3
| | | | Based-on-patch-by: Jiří Klimeš <jklimes@redhat.com>
* examples: add missing device-types to examplesThomas Haller2016-02-233-1/+13
| | | | Based-on-patch-by: Jiří Klimeš <jklimes@redhat.com>
* all: cleanup includes and let "nm-default.h" include "config.h"Thomas Haller2016-02-198-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - All internal source files (except "examples", which are not internal) should include "config.h" first. As also all internal source files should include "nm-default.h", let "config.h" be included by "nm-default.h" and include "nm-default.h" as first in every source file. We already wanted to include "nm-default.h" before other headers because it might contains some fixes (like "nm-glib.h" compatibility) that is required first. - After including "nm-default.h", we optinally allow for including the corresponding header file for the source file at hand. The idea is to ensure that each header file is self contained. - Don't include "config.h" or "nm-default.h" in any header file (except "nm-sd-adapt.h"). Public headers anyway must not include these headers, and internal headers are never included after "nm-default.h", as of the first previous point. - Include all internal headers with quotes instead of angle brackets. In practice it doesn't matter, because in our public headers we must include other headers with angle brackets. As we use our public headers also to compile our interal source files, effectively the result must be the same. Still do it for consistency. - Except for <config.h> itself. Include it with angle brackets as suggested by https://www.gnu.org/software/autoconf/manual/autoconf.html#Configuration-Headers
* examples: avoid compile errors around NM versioningDan Williams2016-01-281-1/+2
|
* contrib/rpm: install pre-up dispatcher script "10-ifcfg-rh-routes.sh" as no-waitThomas Haller2016-01-081-0/+3
| | | | | | | | | The main reason to introduce the "no-wait.d" dispatcher directory was "10-ifcfg-rh-routes.sh", which (as a pre-up script) delays activation. We even extracted the script to a separate package on RHEL to avoid delays by default. Invoke the script via no-wait.d.
* build: rename directory "include" to "shared"Thomas Haller2015-12-241-2/+2
| | | | | | | | | | Up to now, the "include" directory contained (only) header files that were used project-wide by libs, core, clients, et al. Since the directory now also contains a non-header file, the "include" name is misleading. Instead of adding yet another directory that is project-wide, with non-header-only content, rename the "include" directory to "shared".
* examples: add README for python-networkmanager NetworkManager libraryThomas Haller2015-12-073-1/+9
|
* examples: add README for examples/python/giThomas Haller2015-12-072-1/+4
|
* libnm/libnm-glib: add NMClient.get_all_devices() method and AllDevices propertyDan Williams2015-12-041-0/+41
| | | | | Mirror new NetworkManager API to return both real devices and device placeholders.
* python: use gi.require_version() in generate-setting-docs.py and examplesThomas Haller2015-11-1110-0/+20
| | | | | | | | | | | | | | gi now emits a warning when not loading a specific library version [1]: ./generate-setting-docs.py:21: PyGIWarning: NM was imported without specifying a version first. Use gi.require_version(NM, 1.0) before import to ensure that the right version gets loaded. from gi.repository import NM, GObject Seems require_version() is reasonably old to just always use it without breaking on older versions [2]. [1] Related: https://bugzilla.gnome.org/show_bug.cgi?id=727379 [2] https://git.gnome.org/browse/pygobject/commit/?id=76758efb6579752237a0dc4d56cf9518de6c6e55
* examples: add python GI example for retrieving LLDP neighborsBeniamino Galvani2015-10-121-0/+52
|
* build: extract version macros from "nm-version.h" to new header file ↵Thomas Haller2015-09-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "nm-version-macros.h" For libnm library, "nm-dbus-interface.h" contains defines like the D-Bus paths of NetworkManager. It is desirable to have this header usable without having a dependency on "glib.h", for example for a QT application. For that, commit c0852964a890cf43cc2dcaeff41ac6edc5028f24 removed that dependancy. For libnm-glib library, the analog to "nm-dbus-interface.h" is "NetworkManager.h", and the same applies there. Commit 159e827a72f420048e12d318f8ba1edd3f641fc8 removed that include. However, that broke build on PackageKit [1] which expected to get the version macros by including "NetworkManager.h". So at least for libnm-glib, we need to preserve old behavior so that a user including "NetworkManager.h" gets the version macros, but not "glib.h". Extract the version macros to a new header file "nm-version-macros.h". This header doesn't include "glib.h" and can be included from "NetworkManager.h". This gives as previous behavior and a glib-free include. For libnm we still don't include "nm-version-macros.h" to "nm-dbus-interface.h". Very few users will actually need the version macros, but not using libnm. Users that use libnm, should just include (libnm's) "NetworkManager.h" to get all headers. As a special case, a user who doesn't want to use glib/libnm, but still needs both "nm-dbus-interface.h" and "nm-version-macros.h", can include them both separately. [1] https://github.com/hughsie/PackageKit/issues/85 Fixes: 4545a7fe9670ce4d7c259c11c2cc853bfae6729b
* examples: generate UUID in add-wifi-eap-connection.pyJiří Klimeš2015-09-171-2/+2
| | | | so that it can be run multiple times.