Commit graph

373 commits

Author SHA1 Message Date
Thomas Haller
5e45ec6acc keyfile: support NM_SETTING_BRIDGE_MAC_ADDRESS property
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-30 17:02:31 +02:00
Jiří Klimeš
54e689234d ifcfg-rh: read/write bridge.mac-address property as MACADDR variable 2014-05-30 17:02:31 +02:00
Thomas Haller
002718ec0f ifnet: refactor to use nm_utils_hwaddr_ntoa_len() instead of printf()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-30 11:32:20 +02:00
Thomas Haller
40110d3568 ifcfg-rh: refactor writer to use nm_utils_hwaddr_ntoa_len()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-30 11:32:20 +02:00
Thomas Haller
b15fea034d ifcfg-rh: add helper svSetValue_free()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-30 11:32:20 +02:00
Thomas Haller
d426ed28c2 keyfile: stricter checking for invalid HWADDR length in mac_address_parser()
When reading a hardware address in keyfile plugin, check for the
expected length already in mac_address_parser().

Before, we would call the deprecated function nm_utils_hwaddr_type()
to see if it can be some kind of MAC address. In that case, the error
was caught later during NMSetting:verify().

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-29 19:01:00 +02:00
Thomas Haller
415c86eb9a keyfile: don't check HWADDR length in mac_address_writer()
When converting the MAC address to keyfile value, simply accept
any given byte array and pass it to nm_utils_hwaddr_ntoa_len().
This no longer restricts the length of accepted addresses as known by
nm_utils_hwaddr_type(). It is up to the caller to perform any validation
of the MAC address.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-29 19:01:00 +02:00
Thomas Haller
3cda194b44 libnm-util: make hwaddr functions more robust against invalid arguments
- nm_utils_hwaddr_len() and nm_utils_hwaddr_type() no longer assert
  against known input types/lengths. Now they can be used to detect the
  hwaddr type, returning -1 on unknown.
- more checking of input arguments in nm_utils_hwaddr_aton() and
  related. Also note, that nm_utils_hwaddr_aton_len() has @len of type
  gsize, so we cannot pass on the output of nm_utils_hwaddr_len()
  without checking for -1.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-29 19:00:59 +02:00
Jiří Klimeš
dce6599ec0 keyfile: fix reading MAC in old format (list of integers)
Don't call nm_utils_hwaddr_type () with random len, because it causes ugly
  (NetworkManager:25325): libnm-util-CRITICAL **: file nm-utils.c: line 1989 (nm_utils_hwaddr_type): should not be reached

And add a testcase.

https://bugzilla.gnome.org/show_bug.cgi?id=730514
2014-05-29 19:00:41 +02:00
Jiří Klimeš
98ae6e06d2 all: g_type_init() has been deprecated in GLib 2.35.0
g_type_init() deprecation:
https://bugzilla.gnome.org/show_bug.cgi?id=686161
2014-05-27 16:58:21 +02:00
Jiří Klimeš
050c30da0b keyfile: don't put VPN 'user-name' property to vpn.data on read (rh #1060460)
https://bugzilla.redhat.com/show_bug.cgi?id=1060460
2014-05-09 14:22:13 +02:00
Thomas Haller
9ef23947cc all: fix various warnings detected with coverity
https://bugzilla.gnome.org/show_bug.cgi?id=728320

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-02 15:20:30 +02:00
Dan Winship
a54fa87108 ifcfg-rh: fix alias tests to not depend on directory read order
test_read_wired_aliases_bad() would succeed or fail depending on the
order that ifcfg-aliasem1:1 and ifcfg-aliasem1:2 got read from disk.
Fix this by splitting it into two separate tests, each with only a
single alias.
2014-04-25 11:22:15 -04:00
Thomas Haller
cf96ced717 ifcfg-rh: fix leak in svOpenFileInternal()
Error found by coverity.

https://bugzilla.gnome.org/show_bug.cgi?id=728320

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-24 21:18:44 +02:00
Thomas Haller
628e774ba8 ifcfg-rh: fix crash for reading invalid bridge configuration
Error found by coverity.

https://bugzilla.gnome.org/show_bug.cgi?id=728320

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-24 21:18:44 +02:00
Thomas Haller
73d4edb0b7 core: fix leaks for nm_setting_ip[46]_config_add_\(route\|address\)()
Error found by coverity.

https://bugzilla.gnome.org/show_bug.cgi?id=728320

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-24 21:18:08 +02:00
Thomas Haller
785c2a8c95 all/test: modify makefiles to run tests (without arguments) via autoconf TESTS=
This results in some nice coloring. Only move the tests that are called
without arguments from check-local to TESTS.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-23 21:28:55 +02:00
Thomas Haller
adb75b0fa6 ifnet/test: fix test breakage after refactoring tests
Remove fake platform.

This regression was introduced by commit 0140cdb73d).

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-23 20:05:42 +02:00
Dan Winship
0140cdb73d core: use g_test_expect_message() in test programs
Use g_test_expect_message() in the various daemon-side test programs,
to avoid spewing error messages when (successfully) running "make
check".

The ifnet and ifupdown plugins are extremely verbose, so they were
partially "fixed" by turning down the logging level from INFO to WARN
in those tests.

test-dhcp-options needed to be converted to gtestutils so that the
newly-added check in nm-dbus-manager would recognize it as a test
program and not try to create a private bus.
2014-04-23 10:29:20 -04:00
Dan Winship
8537db959c settings: use nm_log_info/warning() in settings plugins
Remove the PLUGIN_PRINT() and PLUGIN_WARN() macros and use the
standard NM logging functions instead.

Also changed PLUGIN_PRINT("error: ...") to nm_log_warn("...") in
places.
2014-04-23 10:19:17 -04:00
Dan Winship
bea82ca98b all: set G_LOG_DOMAIN appropriately, for better g_log() messages 2014-04-23 10:19:17 -04:00
Thomas Haller
6fcbd20597 ifnet/test: fix test breakage after moving wifi-utils to platform
Need to initialize (fake) platform.

This regression was introduced by commit df435f4015.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-22 11:49:57 +02:00
Dan Winship
1796aae751 ifcfg-rh: don't write out IP config on Team connections 2014-04-17 13:00:41 -04:00
Dan Winship
6b2579fcdf keyfile: don't g_return_if_fail() on bad user input
return-if-fail is only for programmer errors
2014-04-17 13:00:37 -04:00
Dan Winship
df435f4015 wifi: move wifi-utils into platform
Move wifi-utils into NMPlatform, and update callers to use the new
NMPlatform wrappers
2014-04-17 12:45:32 -04:00
Dan Winship
efc72c996f ifcfg-rh: more fix build 2014-04-09 14:14:39 -04:00
Dan Winship
88fcf17ce0 ifcfg-rh: fix build
Rebasing the shvar changes to master added some new instances of
svNewFile() and svWriteFile() (in the aliases code) that needed to be
updated for the API changes.
2014-04-09 12:43:35 -04:00
Dan Winship
e43283a288 ifcfg-rh: return proper error messages from svOpenFile() and svWriteFile() 2014-04-09 10:50:56 -04:00
Dan Winship
454311c9ec ifcfg-rh: (trivial) rename svNewFile() to svOpenFile()
It's "new" in the sense that it creates a new shvarFile object, but it
doesn't create a new file, it just opens an existing one.
2014-04-09 10:50:56 -04:00
Dan Winship
5b4cc33cbd ifcfg-rh: semantic code style fixes to shvar.[ch] 2014-04-09 10:50:56 -04:00
Dan Winship
110cb06414 ifcfg-rh: (trivial) syntactic code style fixes to shvar.[ch] 2014-04-09 10:50:56 -04:00
Dan Winship
5bb45373d4 ifcfg-rh: fix up lowlevel ifcfg file reading code
shvar.c was assuming it could do a single read() to read in the ifcfg
file, without taking partial reads or EINTR into account. Fix that.

Also, it was keeping the raw contents of the ifcfg file in the
shvarFile even though it never looked at it after svOpenFile().
(Presumably lineList originally consisted of pointers into arena, but
that had to be changed to support readwrite.) Fix that.

It would simplify things further to use g_file_get_contents() and
g_file_set_contents(), but the current code is perhaps more resilient
to symlink attacks because it keeps the fd open?
2014-04-09 10:50:55 -04:00
Dan Winship
b104994078 ifcfg-rh: use g_ascii_strcasecmp() in svTrueValue()
strcasecmp() is locale-dependent, which is not what we want
2014-04-09 10:50:55 -04:00
Dan Winship
042fb88fea ifcfg-rh: remove ifcfg inheritance code
Nothing was using it, so simplify things by getting rid of it.
2014-04-09 10:50:55 -04:00
Thomas Haller
e9fdfa1700 ifcfg-rh: fix compile error with HAVE_SELINUX
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1070829

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-01 23:44:32 +02:00
Dan Winship
736d0a4a40 ifcfg-rh: fix bugs in the new alias code (rh #1067170)
Fix a bug when reading an invalid alias file, where the code meant to
skip the rest of the loop iteration, but failed.

Also fix a memory leak and remove an unused variable.

Bugs noticed by coverity.
2014-04-01 15:07:49 -04:00
Jiří Klimeš
a2597c0816 ifcfg-rh: put \n after hostname when writing it to /etc/hostname 2014-03-31 17:44:19 +02:00
Jiří Klimeš
da354830da core: build with SELinux; don't break /etc/hostname context (rh #1070829)
https://bugzilla.redhat.com/show_bug.cgi?id=1070829
2014-03-31 17:44:15 +02:00
Dan Winship
12d3a7908e keyfile: ignore ipv4.address-labels
For now they are only supported by ifcfg-rh
2014-03-26 10:53:59 -04:00
Dan Winship
73e011d0b6 ifcfg-rh: add support for reading and writing ifcfg alias files 2014-03-26 10:53:59 -04:00
Dan Williams
85905a1ecf ifcfg-rh: add support for SSID_HIDDEN (rh #1069844)
Read and write the hidden SSID flag, which helps NM figure out
when to probe-scan for hidden networks.
2014-03-12 08:22:40 -05:00
Jiri Pirko
8bed556019 ifcfg-rh writer: do not set TYPE for team ports (rh #1074160)
Notes and changes by jklimes:
- fix reading TeamPort without TYPE=Ethernet
- fix tests
Ideally this should be solved on initscripts side. But teamd doesn't want to do
any changes to initscripts, so we make a workaround here.

https://bugzilla.redhat.com/show_bug.cgi?id=1074160
2014-03-12 09:59:57 +01:00
Jiří Klimeš
cb680c5b54 ifcfg-rh: add missing functionality for reading/writing subject matches
subject-match              - IEEE_8021X_SUBJECT_MATCH
altsubject-matches         - IEEE_8021X_ALTSUBJECT_MATCHES
phase2-subject-match       - IEEE_8021X_PHASE2_SUBJECT_MATCH
phase2-altsubject-matches  - IEEE_8021X_PHASE2_ALTSUBJECT_MATCHES

And a testcase of course.
2014-02-28 10:17:40 +01:00
Thomas Haller
7d73ee75df trivial: more wrong compiler warnings
connection_parser.c: In function 'make_ip4_setting':
  connection_parser.c:660:33: error: 'method' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    if (!is_static_block && strstr (method, "dhcp")) {

  connections.c: In function ‘load_cmd_line_edit_lib’:
  connections.c:5744:17: error: ‘module’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    g_module_close (module);

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-02-27 18:31:07 +01:00
Thomas Haller
0550a14fbe trivial: omit wrong compiler warning in ifcfg-rh reader about uninitialized use
reader.c: In function 'parse_infiniband_p_key':
  reader.c:3947:5: error: 'id' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    id = (id | 0x8000);
       ^

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-02-27 18:26:28 +01:00
Dan Williams
aeefde7513 ifcfg-rh: add testcase for empty Team port config
Add testcase for 3e70fb20d4.
2014-02-14 10:05:19 -06:00
Jiří Klimeš
3e70fb20d4 ifcfg-rh: allow missing (empty TEAM_CONFIG), which is valid configuration
When config is NULL libteam will use its own default configuration.

Commit 76c3bd9898 changed that and refused to
create 'team' setting making connection invalid. It didn't set an error as
well, which resulted in

 ifcfg-rh: parsing /etc/sysconfig/network-scripts/ifcfg-team ...
 ifcfg-rh:     error: (unknown)
 GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed
2014-02-14 10:05:42 +01:00
Dan Winship
9c4d86ee80 libnm-util, libnm-glib: add versioned deprecation/availability macros
Add versioned NM_DEPRECATED_IN_* and NM_AVAILABLE_IN_* macros, and tag
new/deprecated functions accordingly. (All currently-deprecated
functions are assumed to have been deprecated in 0.9.10.)

Add NM_VERSION_MIN_REQUIRED and NM_VERSION_MAX_ALLOWED macros which
can be set to determine which versions will cause warnings.

With the current settings, external consumers of the
libnm-util/libnm-glib APIs will have MIN_REQUIRED and MAX_ALLOWED both
set to NM_VERSION_0_9_8 by default, meaning they will get warnings
about functions added in 0.9.10. NM internally sets
NM_VERSION_MAX_ALLOWED to NM_VERSION_NEXT_STABLE to ensure that it is
always allowed to use all APIs.
2014-02-13 11:24:37 -05:00
Dan Winship
7b85fb6f78 ifcfg-rh: write SLAVE=yes on bond slave connections
For compatibility with the old network scripts.
2014-01-30 11:16:44 -05:00
Thomas Haller
c9e241e2f9 ifcfg-rh: change algorithm for svUnescape
The previous algorithm had runtime complexity O(n^2). Change
it to O(2*n).

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-01-28 19:19:49 +01:00