summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cli: unref main loop after destroying NMClient instancebg/cli-main-loop-unrefBeniamino Galvani2020-05-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Callbacks might reference the main loop when destroying the NMClient instance. Unref the main loop later. # G_DEBUG=fatal-warnings valgrind --num-callers=100 nmcli device wifi connect home ^C Error: nmcli terminated by signal Interrupt (2) Error: Connection activation failed: (0) No reason given. ==11050== Invalid read of size 4 ==11050== at 0x4C90D3D: g_main_loop_quit (in /usr/lib64/libglib-2.0.so.0.6200.6) ==11050== by 0x431435: quit (devices.c:934) ==11050== by 0x43272C: connected_state_cb (devices.c:1919) ==11050== by 0x4BF6741: g_closure_invoke (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x4C0A603: ??? (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x4C133AD: g_signal_emit_valist (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x4C139D2: g_signal_emit (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x4BFB1C3: ??? (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x4BFAAEC: ??? (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x4BFD86A: g_object_thaw_notify (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x48BA040: _nm_client_notify_event_emit (nm-client.c:937) ==11050== by 0x48CA01F: _dbus_handle_changes_commit (nm-client.c:2850) ==11050== by 0x48CC221: _dbus_handle_changes (nm-client.c:2864) ==11050== by 0x48CC833: _init_release_all (nm-client.c:6969) ==11050== by 0x48D2818: dispose (nm-client.c:7826) ==11050== by 0x4BFBC27: g_object_unref (in /usr/lib64/libgobject-2.0.so.0.6200.6) ==11050== by 0x43FF93: nmc_cleanup (nmcli.c:941) ==11050== by 0x4410AD: main (nmcli.c:1005) ==11050== Address 0x54738fc is 12 bytes inside a block of size 16 free'd ==11050== at 0x4839A0C: free (vg_replace_malloc.c:540) ==11050== by 0x4C9649C: g_free (in /usr/lib64/libglib-2.0.so.0.6200.6) ==11050== by 0x4410A3: main (nmcli.c:1004) ==11050== Block was alloc'd at ==11050== at 0x483AB1A: calloc (vg_replace_malloc.c:762) ==11050== by 0x4C96400: g_malloc0 (in /usr/lib64/libglib-2.0.so.0.6200.6) ==11050== by 0x4C90A45: g_main_loop_new (in /usr/lib64/libglib-2.0.so.0.6200.6) ==11050== by 0x441020: main (nmcli.c:987)
* core: add FIXME(release-blocker) comments for match.kernel-command-line behaviorThomas Haller2020-05-122-1/+23
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/431#note_490830
* libnm: add comment and assertions for handling gendata based setting in ↵Thomas Haller2020-05-111-0/+11
| | | | init_from_dbus()
* ethtool: accept %NULL as argument for ↵Thomas Haller2020-05-111-1/+2
| | | | | | | | | nm_ethtool_data_get_by_optname()/nm_ethtool_id_get_by_name() Often it is useful to not accept %NULL as input argument, to catch bugs. For simple functions like nm_ethtool_id_get_by_name(), such limitations are more annoying than helpful. Gracefully accept %NULL and treat is like an invalid ethtool option.
* ethtool: use NM_MORE_ASSERT_ONCE() in _ASSERT_data() to assert immutable ↵Thomas Haller2020-05-111-2/+3
| | | | | | | | | | | data only once _ASSERT_data() checks static, immutable data. Even with more asserts enabled, there is no need to do that every time. Use NM_MORE_ASSERT_ONCE(). Note that NM_MORE_ASSERT_ONCE() will return constant FALSE, when build without a sufficiently high assertion level. That means, the compiler will just optimize the rest away.
* release: bump version to 1.25.1-dev after 1.25.0 release1.25.1-devThomas Haller2020-05-08106-2292/+4724
|\
| * contrib/rpm: log MD5/SHA sums of release tarball during build_clean.shThomas Haller2020-05-082-0/+10
| | | | | | | | | | | | When doing a release, we should care about the checksum of the tarball. Log all of them... also, because fedpkg uses sha512, ftpadmin@gnome uses sha256, etc.
| * ovs: enable trace logging not only with NM_MORE_LOGGINGThomas Haller2020-05-081-10/+11
| | | | | | | | The logging is useful. Always compile it in.
| * all: use "int/char" instead of "gint/gchar" typedefsThomas Haller2020-05-083-4/+4
| | | | | | | | This is also recommended by our checkpatch.pl script.
| * libnm: use nm_str_is_empty() in "nm-setting-match.c"Thomas Haller2020-05-081-3/+3
| |
| * shared: add nm_str_is_empty() helperThomas Haller2020-05-081-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have nm_str_not_empty() which is the inverse of that. The purpose of nm_str_not_empty() is to normalize a string to either return %NULL or a non-empty string, like const char * get_name (Object *obj) { return nm_str_not_empty (obj->name); } Sometimes, we however want to check whether a string is not empty. So, we previously had two choices: 1) use a temporary variable: const char *tmp; tmp = get_string (); if (tmp && tmp[0]) ... The problem with this variant is that it's more verbose (by requiring a temporary variable). Another downside is that there are multiple ways how to check for an empty string (!tmp[0], tmp[0] == '\0', !strlen (tmp), strlen (tmp) == 0), and sure enough they are all in use. 2) use !nm_str_not_empty(). But this double negation looks really odd and confusing. Add nm_str_is_empty() instead.
| * man: extents -> extends in man pageBenjamin Porter2020-05-081-1/+1
| | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/497
| * bridge: merge branch 'th/bridge-default-value-cleanup'Thomas Haller2020-05-087-288/+346
| |\ | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/492
| | * bridge: refactor definition of options array to use a macro and C99 ↵Thomas Haller2020-05-081-106/+138
| | | | | | | | | | | | | | | | | | | | | | | | designated initializer Yes, it's a macro and it's more lines of code. But I think this is much easier to read and to maintain.
| | * libnm: use boolean values for range of NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE ↵Thomas Haller2020-05-081-1/+1
| | | | | | | | | | | | in slave_options
| | * libnm: adjust bridge defines NM_BRIDGE_VLAN_DEFAULT_PVID_DEFThomas Haller2020-05-082-3/+3
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_VLAN_STATS_ENABLED_DEFThomas Haller2020-05-083-4/+5
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_SNOOPING_DEFThomas Haller2020-05-083-4/+5
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_QUERY_USE_IFADDR_DEFThomas Haller2020-05-083-5/+6
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_QUERY_INTERVAL_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_QUERIER_DEFThomas Haller2020-05-083-4/+6
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_PORT_PATH_COST_*Thomas Haller2020-05-083-5/+6
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_PORT_PRIORITY_*Thomas Haller2020-05-083-5/+6
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_PRIORITY_*Thomas Haller2020-05-083-4/+7
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MAX_AGE_*Thomas Haller2020-05-083-8/+8
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_HELLO_TIME_*Thomas Haller2020-05-083-8/+8
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_STP_DEFThomas Haller2020-05-083-4/+5
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_FORWARD_DELAY_*Thomas Haller2020-05-083-8/+8
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_AGEING_TIME_*Thomas Haller2020-05-083-8/+8
| | |
| | * libnm: adjust bridge defines NM_BRIDGE_MULTICAST_HASH_MAX_*Thomas Haller2020-05-083-6/+6
| | |
| | * libnm: move defines for bridge defaults to "nm-core-internal.h" headerThomas Haller2020-05-082-21/+21
| | |
| | * ifcfg-rh/trivial: rename variable i in write_bridge_*setting() to indicate ↵Thomas Haller2020-05-081-35/+35
| | | | | | | | | | | | integer type
| | * ifcfg: refactor GObject accessors in write_bridge_setting()Thomas Haller2020-05-081-62/+29
| | |
| | * device: use NM_G_PARAM_SPEC_GET_DEFAULT_*() in NMDeviceBridge's commit_option()Thomas Haller2020-05-081-7/+4
| | |
| | * shared: add NM_G_PARAM_SPEC_GET_DEFAULT_*() helper macrosThomas Haller2020-05-081-0/+19
| | |
| | * shared: add NM_ENSURE_NOT_NULL() macroThomas Haller2020-05-081-0/+8
| |/
| * acd: fix char buffer argument to _acd_event_to_string_buf()Thomas Haller2020-05-081-1/+1
| |
| * config: merge branch 'th/config-fix-subtract-plugins'Thomas Haller2020-05-077-97/+127
| |\ | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/491
| | * config: minor cleanup in _sort_groups_cmp() and _intern_config_write_sort_fcn()Thomas Haller2020-05-071-6/+4
| | |
| | * config: use nm_streq() and NM_STR_HAS_PREFIX() in "nm-config.c"Thomas Haller2020-05-071-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | - nm_streq() is easier to read. - NM_STR_HAS_PREFIX() works only with string literals, and gets inlined up to one strncmp() call. There is no need to call glib, to determine strlen(prefix) (that we already know), and then to call strncmp().
| | * config: use NM_STR_HAS_PREFIX_WITH_MORE() instead of duplicate implementationThomas Haller2020-05-072-26/+10
| | |
| | * config: use cleanup attribute in read_config()Thomas Haller2020-05-071-17/+16
| | |
| | * settings: ensure that "plugins-=ifcfg-rh" works with the default pluginsThomas Haller2020-05-072-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Fedora/RHEL, the default for main.plugins is "ifcfg-rh". You would expect that a single configuration file [main] plugins-=ifcfg-rh would result in an empty list of plugins (which subsequently gets completed with "keyfile"). That didn't happen due to a bug. Fix it.