Commit graph

5692 commits

Author SHA1 Message Date
Thomas Haller
c7fe834bdf main: refactor early setup in main()
Move call to nm_main_utils_early_setup() to a separate function.
Also move the @options array away from the main function, saving
a few bytes on the stack.
Now only do_early_setup() modifies the @global_opt structure.

(cherry picked from commit 5775df9a6d)
(cherry picked from commit 8e58fc7425)

Conflicts:
	src/main.c
	src/nm-iface-helper.c
2015-03-20 12:38:48 +01:00
Thomas Haller
8295b75742 main: move option variables to static variable
Move the variables to a static struct so that we can factor
out some of the initialization code.

Also it's nice to have all options placed together in one struct so
that is is obvious which static variables are part of the command line
options, and which have other use.

(cherry picked from commit 1fc5aba42a)

Conflicts:
	src/nm-iface-helper.c
2015-03-20 11:56:51 +01:00
Thomas Haller
9cc54f43bc main-utils: don't leak description for command line arguments in nm_main_utils_early_setup()
(cherry picked from commit b5ca5bd7b7)
2015-03-20 11:53:26 +01:00
Thomas Haller
126723f94d main/trivial: change order of arguments for nm_main_utils_early_setup()
Change the order of the argv and argc argument to match
the main() function.

(cherry picked from commit ee4543bd6e)
2015-03-20 11:52:02 +01:00
Lubomir Rintel
6a147dff87 device: if there's a ll address already don't re-commit it
Configuration commit is an unsafe thing to do for assumed connections,
it can remove an externally added address we don't know about yet.

The device already has a link-local address; for an assumed connection
it's the reason we assumed the method=link-local in the first place.

(cherry picked from commit 396dc2b3b4)
2015-03-17 17:19:00 +01:00
Lubomir Rintel
409c0fb544 device: fix a couple of copy & paste errors
(cherry picked from commit a8a9955d75)
2015-03-17 17:18:59 +01:00
Lubomir Rintel
4c8cbc6534 device: do not touch sysctls after the device was removed
Paths to sysctls don't use ifindex and device names can be reused. If someone
removes a device and quickly creates a device with the same name, chances are
we're cleaning up the device that was just added.

Sadly, it seems there's no better API than sysctl-- neither netlink nor procfs
symlinks with ifindex or anything like that.

(cherry picked from commit f85513b8e4)
2015-03-17 17:18:58 +01:00
Dan Williams
46c836e5cd connectivity: disable HTTP keepalive for connectivity checks
There won't be any further requests, so there's no point in keeping
the connection alive.  Even if the HTTP server doesn't care, proxy
servers in-between might keep the connection open for a couple seconds
for keepalive, and we might as well be nice to them and tell them we
don't need to keep it alive.

(cherry picked from commit 90692e3eff)
2015-03-16 10:49:36 -05:00
Thomas Haller
545fbd2b09 config/test: fix memleaks in test-config.c 2015-03-13 11:50:51 +01:00
Thomas Haller
d510f0a039 config: fix memleak in merge_no_auto_default_state() 2015-03-13 11:50:51 +01:00
Thomas Haller
537ce96fa2 config/tests: inject NMDBusManager for tests in NMDevice stub
We don't need the bus for the tests and the manager may warn when it
is not available.

  $ (cd src/tests/config/; env -i DBUS_SYSTEM_BUS_ADDRESS=meow ./test-config)

  /config/parse-error: OK
  /config/no-auto-default: NetworkManager-Message: <info>  Could not connect to the system bus; only the private D-Bus socket will be available.
  /bin/sh: line 5: 29997 Trace/breakpoint trap   ${dir}$tst
  FAIL: test-config

This reverts commit 6994454461 for the
most part. It's not sufficient to disable logging warnings. Creating
a DBus Manager might affect the system in undesired ways.

(cherry picked from commit 5040a8a851)
2015-03-13 11:50:51 +01:00
Thomas Haller
36a136fb58 config/test: move test over to nm-test-util
(partially cherry picked from commit 13c7f6a56d)

Conflicts:
	src/tests/config/test-config.c
2015-03-13 11:50:51 +01:00
Thomas Haller
91144ee070 dbus-manager: add nm_dbus_manager_setup() function for testing
(cherry picked from commit 9b16e85ece)
2015-03-13 11:50:50 +01:00
Thomas Haller
07786f6ee6 dbus-manager: refactor singleton getter dropping g_once_init_enter()
The class itself is not thread-safe, so no need for guarding
the creation with g_once_init_*().

Also, assert against multiple creation and log a line when
creating the singleton. The getter is now more similar to what
is created by NM_DEFINE_SINGLETON_GETTER().

(cherry picked from commit 99465a34ca)
2015-03-13 11:50:50 +01:00
Thomas Haller
04f22b9a44 dbus: destroy singleton instance of NMDBusManager on exit
Don't have the singleton instance of NMDBusManager owned by
the main function. Instead use NM_DEFINE_SINGLETON_DESTRUCTOR()
which also logs what's happening.

(cherry picked from commit 1208c0dd13)

Conflicts:
	src/main.c
2015-03-13 11:50:50 +01:00
Thomas Haller
62bff65e14 core/trivial: rename singleton variables according to default name
(cherry picked from commit 822cb293ef)
2015-03-13 11:50:50 +01:00
Thomas Haller
cea32bd0dc core: fix memleak in NMDBusManager:private_server_new()
(cherry picked from commit 96b8b99c7d)
2015-03-13 11:50:50 +01:00
Dan Williams
c505658815 ifcfg-rh: fix memleak in test-ifcfg-rh.c
(cherry picked from commit ad90f2f0ea)
2015-03-13 11:50:50 +01:00
Dan Williams
33264396c9 tests: fix memleaks in test-wifi-ap-utils.c
(cherry picked from commit 51b3540ae4)
2015-03-13 11:50:50 +01:00
Lubomir Rintel
411fa7d002 test: initialize auto-destructed pointers
Otherwise the compiler complains that they could be left uninitialized in case
the function returns too early.

Fixes: 76745817c3
(cherry picked from commit 2981839bde)
2015-03-13 11:50:50 +01:00
Thomas Haller
b9a8f3c059 tests: enable valgrind tests for tests
(cherry picked from commit c50f30e79c)
2015-03-13 11:50:04 +01:00
Thomas Haller
c2cd7e631f platform/tests: reenable valgrind tests
valgrind tests for platform were wrongly disabled.

Fixes: e3784fa618
(cherry picked from commit 6853d07f05)
2015-03-13 11:50:04 +01:00
Thomas Haller
692619ea89 supplicant/tests: fix memleaks in test code for valgrind
(cherry picked from commit 624aa51614)
2015-03-13 11:50:04 +01:00
Thomas Haller
12ee98f471 dhcp/tests: fix memleaks in test code for valgrind
(cherry picked from commit d74a3d0a02)
2015-03-13 11:50:04 +01:00
Thomas Haller
4f685b4310 config/tests: fix memleak in test code for valgrind
(cherry picked from commit 63f5a22ad7)
2015-03-13 11:50:04 +01:00
Thomas Haller
a369923d03 device: refactor dispose/cleanup of NMDevice to free members in finalize
NMTestDevice does not invoke dispose(), hence it leaks memory which causes
false warnings in testing.
Some minor refactring to let dispose() clear the fields, but free it
later in finalize(). This avoids memleaks in the NMTestDevice stub.

(cherry picked from commit a82d94a64e)
2015-03-13 11:50:04 +01:00
Thomas Haller
e25d06cf71 ifcfg-rh/tests: fix memleaks in test code for valgrind
(cherry picked from commit 0750d934bf)
2015-03-13 11:50:04 +01:00
Thomas Haller
72666156e3 ibft/tests: fix memleaks in test code for valgrind
(cherry picked from commit fbe8c0ed87)
2015-03-13 11:50:04 +01:00
Thomas Haller
f334c4a7f1 keyfile/tests: fix memleaks in test code for valgrind
(cherry picked from commit 9a2f2ed7fd)
2015-03-13 11:50:04 +01:00
Thomas Haller
b352d0a26b core/tests: fix memleak in tests to avoid valgrind warnings
(cherry picked from commit 1680bf3ad1)
2015-03-13 11:50:04 +01:00
Thomas Haller
84ff53ec76 dhcp: fix memleak in process_dhclient_rfc3442_route()
(cherry picked from commit 1935fca09a)
2015-03-13 11:50:04 +01:00
Thomas Haller
825eb5cb62 ifcfg-rh: fix memleak in write_ip4_aliases() and assert against overflow
(cherry picked from commit a9bfe9f4bb)
2015-03-13 11:50:04 +01:00
Thomas Haller
273576b01c ifcfg-rh: fix memleaks in reader
(cherry picked from commit 53796f0beb)
2015-03-13 11:50:04 +01:00
Thomas Haller
856962cea8 ifcfg-rh: fix memleak due to make_wpa_setting() returning both wsec and error
==10501== 353 (32 direct, 321 indirect) bytes in 1 blocks are definitely lost in loss record 1,579 of 1,641
    ==10501==    at 0x7EE3728: g_type_create_instance (gtype.c:1847)
    ==10501==    by 0x7EC75B4: g_object_new_internal (gobject.c:1746)
    ==10501==    by 0x7EC945C: g_object_newv (gobject.c:1890)
    ==10501==    by 0x7EC9C23: g_object_new (gobject.c:1556)
    ==10501==    by 0x1CD87C: nm_setting_wireless_security_new (nm-setting-wireless-security.c:122)
    ==10501==    by 0x16F70B: make_wpa_setting (reader.c:3010)
    ==10501==    by 0x16F33F: make_wireless_security_setting (reader.c:3188)
    ==10501==    by 0x161F4C: wireless_connection_from_ifcfg (reader.c:3464)
    ==10501==    by 0x16109A: connection_from_file_full (reader.c:4763)
    ==10501==    by 0x1614EE: connection_from_file_test (reader.c:4862)
    ==10501==    by 0x13D1D6: test_read_wifi_wpa_psk_unquoted2 (test-ifcfg-rh.c:4316)
    ==10501==    by 0x1281FD: main (test-ifcfg-rh.c:12513)
    ==10501==

(cherry picked from commit fcfd8f487a)
2015-03-13 11:50:04 +01:00
Thomas Haller
2ceea73dc3 ifcfg-rh: fix memleak in svSetValue()
(cherry picked from commit 98a0299265)
2015-03-13 11:50:04 +01:00
Thomas Haller
3e1055d141 ibft: fix memleak in read_ibft_blocks()
(cherry picked from commit 494c5c395d)
2015-03-13 11:50:04 +01:00
Thomas Haller
410a22b28f keyfile: fix memleak in parity_parser()
(cherry picked from commit 9d8f93384a)
2015-03-13 11:50:03 +01:00
Thomas Haller
74d44dd563 config: fix memleak in read_config()
(cherry picked from commit b49fdae59e)

Conflicts:
	src/nm-config.c
2015-03-13 11:50:03 +01:00
Dan Williams
6e77c1ba2f device: don't assume valid ip4/ip6 config in nm_device_get_ipX_route_metric()
These functions will sometimes get called on updates to the device's IP
config due to external changes, or when addresses get flushed from the
device when activating it.  If the device is a slave device, then at
this point its NMConnection won't have an IP settings.  Suppress the
warning that gets printed when s_ip == NULL, because it's expected.

(cherry picked from commit d2de83e0f7)
2015-03-12 15:06:40 -05:00
Dan Williams
a8833a4dbd device: fix handling if DHCP hostname for configure-and-quit
Fixes: 5149fd120d
(cherry picked from commit 1dae47e9cc)
2015-03-12 14:38:58 -05:00
Thomas Haller
06b3e3ae6b settings: update year in copyright text of plugin-info for keyfile and ifcfg-rh
(cherry picked from commit 4475f59bce)
2015-03-11 17:07:56 +01:00
Thomas Haller
76ee139107 ifcfg-rh: don't reload connection in connection_ifcfg_changed() if monitoring is not enabled
This was not really an error, because NMIfcfgConnection would not
watch the files if monitoring is not enabled. Still do it, because
it feels more correct.

(cherry picked from commit 236226a590)
2015-03-11 17:07:56 +01:00
Thomas Haller
581caca9f2 ifcfg-rh: refactor update_connection()
Make update_connection() analogous to keyfiles implementation.
Effectively merge _internal_new_connection() and update_connection()
-- previously connection_new_or_changed().

https://bugzilla.redhat.com/show_bug.cgi?id=1171751
(cherry picked from commit 0c6349c627)
2015-03-11 17:07:56 +01:00
Thomas Haller
4b5d3f160d ifcfg-rh: sort paths in read_connections()
Presort the files in read_connections() as we do it
for keyfile.

This alone has not much consequences. Do this patch first, to
keep the next patches more self-contained.

(cherry picked from commit 0cf00ff3aa)
2015-03-11 17:07:56 +01:00
Thomas Haller
d6bd8cc496 ifcfg-rh/trivial: rename connection_new_or_changed() and variable
The ifcfg-rh implementation should be similar to the one from keyfile.
Rename the variables and function that have the same meaning.
Do this trivial commit first, before starting refactoring.

(cherry picked from commit a609dd12d3)
2015-03-11 17:07:56 +01:00
Thomas Haller
0516b55de2 ifcfg-rh: add logging macros _LOGX() to plugin.c
(cherry picked from commit bbaa243e31)
2015-03-11 17:07:55 +01:00
Thomas Haller
7510e67f0a settings: avoid duplicate UUID in settings
When adding a connection to NMSettings we did not check for
duplicate connection UUIDs (which could for example happen
if two different plugins report a conflicting UUID).
Also, we would not check that an already added connection
changes it's UUID.

Both could lead to have duplicate connections (by UUID).

Avoid that two ways:
- when adding a connection to NMSettings, ensure that we don't add
  a conflicting UUID. Otherwise just bail out and do nothing.
- when modifying a connection that is already added to NMSettings,
  enforce that the UUID cannot change. Otherwise fail with error.

For ifcfg-rh plugin this situation still can happen during reload.
In this case error out and refuse to update the connection. After
all, the user configured invalid UUIDs.

https://bugzilla.redhat.com/show_bug.cgi?id=1171751
(cherry picked from commit 7b807b11cc)
2015-03-11 17:07:55 +01:00
Thomas Haller
6cd264b0d5 keyfile: ignore GFileMonitor change flags in dir_changed()
When writing a file (for example with `sed -i`) a temporary file
might be created and removed quickly. This causes spurious events
in dir_changed().

(cherry picked from commit 8ba8a55cfa)
2015-03-11 17:07:55 +01:00
Thomas Haller
8c97626918 keyfile: reuse duplicate check from update_connection() in add_connection()
Also during add_connection() we must take special care of not "adding" a
connection with a conflicting UUID. In that case we want to fallback to
"update".

update_connection() already does all the checks, so call
update_connection() from add_connection().

(cherry picked from commit db5c4ce64f)
2015-03-11 17:07:55 +01:00
Thomas Haller
84353078c1 keyfile: cleanup logging
Log lines with a "keyfile:" prefix and show more information about
the loaded connection. Especially printing the UUID is interesting.

(cherry picked from commit 5c2fa92099)
2015-03-11 17:07:55 +01:00