summaryrefslogtreecommitdiff
path: root/callouts
AgeCommit message (Collapse)AuthorFilesLines
2015-10-30dispatcher: fix abort in case of an error (rh #1275813)Jiří Klimeš1-0/+1
request_free() can be called on an error. Oct 27 20:27:46 localhost.localdomain nm-dispatcher[2328]: #1 'pre-up': completed: invalid request: Missing or invalid required value path! Oct 27 20:27:46 localhost.localdomain nm-dispatcher[2328]: ** Oct 27 20:27:46 localhost.localdomain nm-dispatcher[2328]: ERROR:nm-dispatcher.c:203:request_free: assertion failed (request->num_scripts_done == request->scripts->len): (0 == 1) Fixes: 1999723241c49a7f2d5052d34299aad3d6e26e41 https://bugzilla.redhat.com/show_bug.cgi?id=1275813
2015-09-30build: extract version macros from "nm-version.h" to new header file ↵Thomas Haller2-0/+2
"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
2015-08-26test: fix a format-security errorLubomir Rintel1-1/+1
test-dispatcher-envp.c: In function 'test_generic': test-dispatcher-envp.c:507:3: error: format not a string literal and no format arguments [-Werror=format-security]
2015-08-25dispatcher: refactor logging of nm-dispatcherThomas Haller1-42/+79
Refactor logging so that all logging lines for a request/script have the same prefix, indicating the event to which they belong. Previously, we only scheduled one script at a time so it was always clear for which request a script belongs. Now we schedule scripts in parallel, so we must know the event (request) for which we log a message.
2015-08-25dispatcher: return error reason from nm_dispatcher_utils_construct_envp()Thomas Haller4-13/+41
Also, error out in handle_action() when nm_dispatcher_utils_construct_envp() indicates a failure.
2015-08-25dispatcher: remove local @iface variable from handle_action()Thomas Haller1-5/+2
2015-08-25dispatcher: move clearing @quit_id in handle_action()Thomas Haller1-2/+3
First create and initialize @request, and then start it.
2015-08-25dispatcher: use slice allocator for Request and ScriptInfoThomas Haller1-4/+6
2015-08-25dispatcher: run "wait" scripts only after "no-wait" scripts completeThomas Haller1-2/+23
Previously, dispatcher would start all "no-wait" script right away, but it would also start the first "wait" script while the "no-wait" script are still running (unless, there are other "wait" scripts that delay the execution). Now, do not start processing the "wait" scripts, as long as there are any "no-wait" scripts from the same request running.
2015-08-25nm-dispatcher: allow scripts to be marked as no-waitBeniamino Galvani3-72/+240
When a script is a symbolic link to the 'no-wait.d' subdirectory, the dispatcher now schedules it immediately and in parallel with other no-wait scripts. https://bugzilla.gnome.org/show_bug.cgi?id=746703
2015-08-25nm-dispatcher: fix memory leaksBeniamino Galvani1-1/+2
2015-08-19dispatcher: explicitly set missing interface argument for device actionsThomas Haller2-2/+4
The first argument for dispatcher actions is the interface name, except for the "hostname" action, where no interface is available. For "hostname" actions continue to pass "none", as there is no interface available. But for device actions, it may happen that the interface name is missing too. In this case, don't pass "none" but instead an empty name.
2015-08-10core: final gdbus portingDan Winship2-5/+2
Port remaining bits to gdbus and remove stray dbus-glib references Drop the dbus-glib version check from configure, since nothing depends on new dbus-glib any more. Move nm-dbus-glib-types.h and nm-gvaluearray-compat.h from include/ to libnm-util/ since they are now only used by libnm-util and libnm-glib.
2015-08-05all: make use of new header file "nm-default.h"Thomas Haller4-4/+4
2015-07-24all: rename nm-glib-compat.h to nm-glib.h, use everywhereDan Winship4-7/+4
Rather than randomly including one or more of <glib.h>, <glib-object.h>, and <gio/gio.h> everywhere (and forgetting to include "nm-glib-compat.h" most of the time), rename nm-glib-compat.h to nm-glib.h, include <gio/gio.h> from there, and then change all .c files in NM to include "nm-glib.h" rather than including the glib headers directly. (Public headers files still have to include the real glib headers, since nm-glib.h isn't installed...) Also, remove glib includes from header files that are already including a base object header file (which must itself already include the glib headers).
2015-07-14vpn-plugin-old,dispatcher: cast unchecked g_variant_lookup() calls to voidLubomir Rintel1-1/+1
This is done to silence coverity. In the dispatcher the existence of the key is checked before and we're fine with leaving the value untouched in the vpn-plugin-old.
2015-07-12all: remove #if GLIB_CHECK_VERSION conditionals around g_type_init()Thomas Haller1-3/+1
g_type_init() is now provided by nm-glib-compat.h as nm_g_type_init().
2015-07-12test: initialize tests with nmtst_init()Thomas Haller1-5/+5
2015-07-01dispatcher: don't exit with failure in case D-Bus service stopsThomas Haller1-2/+7
The initsystem should stop nm-dispatcher before stopping D-Bus service. However, on some systems that is not implemented, so nm-dispatcher should not exit with a failure message when the system bus disappears. Instead just assume that D-Bus service was stopped during shutdown and exit gracefully. Based-on-patch-by: Jacob <jacobgodserv@gmail.com> https://bugzilla.gnome.org/show_bug.cgi?id=751017
2015-05-28builds: only enable TAP driver for glib >= 2.37.6Lubomir Rintel1-2/+0
No TAP support for previous versions and --tap argument is silently ignored, confusing the TAP driver.
2015-05-26tests: use the TAP formatterLubomir Rintel1-0/+2
The test results in standard format are easily integrated into CI systems.
2015-05-11callouts: avahi-autoipd-action is no moreBeniamino Galvani3-151/+2
2015-05-05dispatcher: repeat waitpid() call on EINTRThomas Haller1-3/+6
Also, no use of first trying to kill() with signal zero. Just send SIGKILL right away.
2015-04-04dispatcher: belatedly remove no-longer-used dbus-glib defineDan Winship1-4/+0
2015-03-23data: move OLPC MESH udev rules away from calloutsLubomir Rintel2-12/+0
No idea why was it there in the first place. This also fixes a bug that the rules file was conditionally included in dist depending on presence of udev dir at configure time.
2015-03-12dispatcher: fix memleak in construct_device_dhcp4_items()Dan Williams1-0/+1
When iterating over a container variant, the children values must be unrefed when no longer used.
2015-02-09tests: enable valgrind tests for testsThomas Haller1-0/+1
2015-02-09callouts/tests: fix memleak in test code for valgrindThomas Haller1-5/+25
2015-02-06callouts/tests: fix parsing dhcp in get_dispatcher_file()Thomas Haller1-1/+1
2015-01-19core, dispatcher: drop unnecessary setpgid() callsDan Winship1-10/+1
There's no point in calling setpgid() on short-lived processes, so remove the setpgid() calls when spawning dispatcher scripts, iptables, iscsiadmin, and netconf.
2015-01-19dispatcher: add an env var indicating a connection is "external"Dan Winship5-0/+54
Add CONNECTION_EXTERNAL=1 to the environment when dispatching actions on a "generated-assumed" connection (ie, one that was created outside of NM).
2015-01-19dispatcher: expose connection D-Bus pathDan Winship6-3/+14
src/nm-dispatcher.c was passing the connection's D-Bus path to the dispatcher, which was then ignoring it. Meanwhile, test-dispatcher-envp was passing a fake D-Bus path with the wrong name (which didn't actually matter since nm_dispatcher_utils_construct_envp() ignored it anyway). Fix it so that the path gets exposed as CONNECTION_DBUS_PATH, and adjust the tests for that.
2015-01-19dispatcher: remove "old" from the test namesDan Winship6-21/+21
There's no reason the dispatcher test files should have "old" in their names, since they're testing the current dispatcher interface.
2015-01-12dispatcher: pass CONNECTION_FILENAME to dispatcher scriptsDan Winship7-0/+17
2014-12-08dispatcher: refactor constructing environment variables from strvThomas Haller1-70/+43
This also avoids warnings with -O2 -Wstrict-overflow (gcc-4.8.3): make[4]: Entering directory `./NetworkManager/callouts' CC libtest_dispatcher_envp_la-nm-dispatcher-utils.lo nm-dispatcher-utils.c: In function 'construct_ip6_items': nm-dispatcher-utils.c:283:8: error: assuming signed overflow does not occur when simplifying conditional to constant [-Werror=strict-overflow] if (i != 0) ^ nm-dispatcher-utils.c: In function 'construct_ip4_items': nm-dispatcher-utils.c:144:8: error: assuming signed overflow does not occur when simplifying conditional to constant [-Werror=strict-overflow] if (i != 0) ^ nm-dispatcher-utils.c:168:8: error: assuming signed overflow does not occur when simplifying conditional to constant [-Werror=strict-overflow] if (i != 0) ^ https://bugzilla.gnome.org/show_bug.cgi?id=741168
2014-12-05callout: ignore waitpid() return valueJiří Klimeš1-1/+1
Coverity: Defect type: CHECKED_RETURN
2014-11-20dispatcher: Fix testsLubomir Rintel3-0/+3
IP4_GATEWAY variable was added to the environment. Fixes: 9a133787536452cc8e471efe6bc0c94e5ad43383
2014-11-19dispatcher: introduce new env variables for gateway address (bgo #740363)Jiří Klimeš1-0/+8
IP4_GATEWAY VPN_IP4_GATEWAY IP6_GATEWAY VPN_IP6_GATEWAY We still put gateway into IP[46]_ADDRESS_N for backward compatibility. https://bugzilla.gnome.org/show_bug.cgi?id=740363
2014-11-13all: consistently include config.hDan Winship4-2/+8
config.h should be included from every .c file, and it should be included before any other include. Fix that. (As a side effect of how I did this, this also changes us to consistently use "config.h" rather than <config.h>. To the extent that it matters [which is not much], quotes are more correct anyway, since we're talking about a file in our own build tree, not a system include.)
2014-11-07all: allow route metrics to be "0"Dan Winship1-4/+4
Change NMIPRoute to use "-1" for "default", so that "0" is a valid metric. Update everything for that.
2014-11-07libnm-core: add NMSettingIPConfig:gateway, drop NMIPAddress:gatewayDan Winship2-22/+21
The gateway is a global property of the IPv4/IPv6 configuration, not an attribute of any particular address. So represent it as such in the API; remove the gateway from NMIPAddress, and add it to NMSettingIPConfig. Behind the scenes, the gateway is still serialized along with the first address in NMSettingIPConfig:addresses, and is deserialized from that if the settings dictionary doesn't contain a 'gateway' key. Adjust nmcli's interactive mode to prompt for IP addresses and gateway separately. (Patch partly from Jirka Klimeš.)
2014-11-07libnm-core, all: merge IPv4 and IPv6 address/route typesDan Winship2-66/+74
Merge NMIP4Address and NMIP6Address into NMIPAddress, and NMIP4Route and NMIP6Route into NMIPRoute. The new types represent IP addresses as strings, rather than in binary, and so are address-family agnostic.
2014-10-30Merge branch 'lr/rpm-make-check'Lubomir Rintel1-2/+2
https://bugzilla.gnome.org/show_bug.cgi?id=739127
2014-10-28callouts: Mark nmdbus-dispatcher.[ch] as BUILT_SOURCESColin Walters1-0/+2
Otherwise we might hit race conditions during build.
2014-10-28libnm-core: add nm-core-types.h, remove cross-includesDan Winship1-3/+1
Add nm-core-types.h, typedefing all of the GObject types in libnm-core; this is needed so that nm-setting.h can reference NMConnection in addition to nm-connection.h referencing NMSetting. Removing the cross-includes from the various headers causes lots of fallout elsewhere. (In particular, nm-utils.h used to include nm-connection.h, which included every setting header, so any file that included nm-utils.h automatically got most of the rest of libnm-core without needing to pay attention to specifics.) Fix this up by including nm-core-internal.h from those files that are now missing includes.
2014-10-24build: fix srcdir != builddirDan Winship1-0/+1
callouts/tests/ needs -I$(top_builddir)/callouts to get nmdbus-dispatcher.h
2014-10-21dispatcher: fix crash on missing scripts (bgo #738654)Jiří Klimeš1-1/+1
GLib-CRITICAL **: g_variant_type_checked_: assertion `g_variant_type_string_is_valid (type_string)' failed GLib-CRITICAL **: g_variant_new_array: assertion `n_children > 0 || child_type != NULL' failed https://bugzilla.gnome.org/show_bug.cgi?id=738654
2014-10-20build: Don't conditionally omit files from distributionLubomir Rintel1-2/+2
2014-10-20build: Don't leak generated files into distributionLubomir Rintel1-6/+2
gdbus-codegen will generate code that will need a too recent version of glib.
2014-09-18libnm: port to GDBusDan Winship1-2/+1
Port libnm-core/libnm to GDBus. The NetworkManager daemon continues to use dbus-glib; the previously-added connection hash/variant conversion methods are now moved to NetworkManagerUtils (along with a few other utilities that are now only needed by the daemon code).