Commit graph

59 commits

Author SHA1 Message Date
Jiří Klimeš
0dc11be8da trivial: remove unnecessary always-true check 2011-11-22 09:52:42 +01:00
Dan Williams
9dd270966e ifcfg-rh: revert some bits of a2b1afb1e4
Revert the DEVICE and suffix bits for the connection name; there's
a few problems with this.  It adds the DEVICE value for connections
regardless of what type they, even in cases where it's not hugely
useful (ie basic wired).  We used to do this, but stopped doing it
because it has zero relevance to a large number of users.  Instead,
the UI itself should do this where appropriate.  That probably means
that 'nmcli' and other tools should give more information about
the components of a connection (like a slave device's master) and
GUI tools would show that in detailed connection information but
not in the at-a-glance status or tooltips.  Second, if more
more advanced users wish this information to show up in the name
they can always set the name themselves, or name the ifcfg file
something like "ifcfg-bond1-slave-of-eth0" too.
2011-11-17 18:05:35 -06:00
Dan Winship
2510c617ec libnm-util: add ether_ntoa/ether_aton-like utility methods
nm_utils_hwaddr_ntoa() and nm_utils_hwaddr_aton() are like
ether_ntoa()/ether_aton(), but handle IPoIB too.

nm_utils_hwaddr_atoba() is like _aton() but returns a GByteArray,
since that's what's wanted in many places.

Also remove nm_ether_ntop() and replace uses of it with
nm_utils_hwaddr_ntoa().
2011-11-17 13:37:08 -06:00
Jiří Klimeš
7b7e426b65 settings: pass config file name to settings plugins
Thus plugins will use the correct configuration file, even in case the name
is specified on command line with --config.
2011-11-16 08:56:29 +01:00
Thomas Graf
a2b1afb1e4 bonding: prefix bonding connections with "Bond" and append slave suffix
Moves the logic of naming connections into its own function. Allows each
connection type to provide a "hard" prefix which will always be used.
Bonding uses this to prefix all bonding connections with "Bond".

If a DEVICE= line is available, append it to the end of connection name
for easier identification of the real device behind it.

Appends the suffix "[slave-of <MASTER>]" to all connections which are
configured as a slave of a bond.

Examples:

  myName                  -> myName (eth0)
  System eth0             -> System eth0
  myName2                 -> Bond myName2 (bond0)
  System bond0            -> Bond bond0
  myName                  -> myName (eth0) [slave-of bond0]
  System eth0             -> System eth0 [slave-of bond0]

Signed-off-by: Thomas Graf <tgraf@redhat.com>
2011-11-14 18:37:37 -06:00
Thomas Graf
6349151de1 bonding: implement bonding slaves
Adds a MASTER= directive to ifcfg-rh allowing a connection to define
itself as bonding slave.

Adds a connection property "master" which contains the in-kernel device
name or UUID of the master connection.

Adds a connection property "slave-type" which defines the type of slave
this connection represents. Currently this is only set by bonding but
eventually this will be used by VLAN and bridging.

Enforces that no bonding slave connection has any IPv4 or IPv6
configuration set.

Changes make_ip4_setting() to take a universal flag indicating whether
to allow disabling ip4 config or not and use it for both, ip6 and
bonding special case.

Signed-off-by: Thomas Graf <tgraf@redhat.com>
2011-11-09 23:23:21 -06:00
Thomas Graf
a2a0d78818 bonding: settings parser for ifcfg plugin + NMSettingBond class
Introduced a new TYPE=bond for ifcfg-rh configuration files.
Alternatively BONDING_MASTER=yes can be specified instead of
setting the type explicitely to maintain backwards compatibility
with existing configuration files.

Bonding device files require a DEVICE= line to be present which
specifies the virtual bonding interface in the kernel. We do not
allow auto-generation of the name in order to keep confusion to
a minimum when reusing existing bonding interfaces.

The BONDING_OPTS= parameter can be used to specify various bonding
related options, such as:
  - mode
  - miimon
  - updelay
  - downdelay
  - arp_interval
  - arp_ip_target

By default, the NMSettingBond class uses a miimon value of 100 which
seems like a sensible default value for 99% of all configurations.
If this is not suitable, an arp_ip_target needs to be specified
manually.

A writer is not yet implemented.

Changes v2:
 - renamed DeviceName property to InterfaceName
 - moved code to validate device name to dev_valid_name() for future use

Signed-off-by: Thomas Graf <tgraf@redhat.com>
2011-11-09 23:16:31 -06:00
Jiri Popelka
3e11682ddc ifcfg-rh: read/write zone name from/to ZONE key 2011-11-09 21:40:13 -06:00
Jiří Klimeš
3049511f47 ifcfg-rh: fix changing WPA connections to WEP
When connection was changed with the editor from WPA to WEP, KEY_MGMT was
not cleared. This resulted in infinite loop of ifcfg plugin under some
circumstances ("Available to all users" unchecked, I think).
The re-read connection was regarded as WPA and thus it differed from the
stored one.
2011-10-11 18:10:26 +02:00
Thomas Jarosch
d7ad91d1b4 ifcfg-rh: use correct g_free() function
Detected by cppcheck.

Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>

(dcbw: fix more occurances)
2011-10-05 12:40:01 -05:00
Jiří Klimeš
dce6a071a8 ifcfg-rh: don't use spaces in ifcfg file names (rh #742273) 2011-10-03 10:30:50 +02:00
Thomas Graf
00f2b0a9bb core: Include <linux/if.h> instead of <net/if.h>
NM already includes <linux/if.h> in some places, f.e. nm-netlink-monitor and
we can't mix usage of the two. Stick to using <linux/if.h> as it provides
additional flag definitions such as operational link state and link mode.

Signed-off-by: Thomas Graf <tgraf@redhat.com>
2011-09-30 00:18:24 -05:00
Jiří Klimeš
1c767dd541 fcfg-rh: remove newlines when writing to ifcfg files (CVE-2011-3364) (rh #737338) 2011-09-27 09:26:40 +02:00
Jiří Klimeš
f44959890b ifcfg-rh: change iscsiadm path to /sbin/iscsiadm (rh #740753)
Using SBINDIR appears to be wrong as it expands to /usr/sbin.
2011-09-26 15:51:49 +02:00
Dan Williams
f082e243c6 ifcfg-rh: fix crash when system bus isn't around 2011-09-19 17:38:58 -05:00
Jiří Klimeš
adc7ec170d ifcfg-rh: make NM_CONTROLLED changes function properly (rh #727501)
Changing NM_CONTROLED from "no" to "yes" worked just the first time.
Fix that by storing unmanaged spec when interface becomes unmanaged
and adjust condition identifying "no-change" updates to the ifcfg
file.
2011-08-02 12:18:52 +02:00
Jiří Klimeš
312c7c952c ifcfg-rh: emit "updated" signal when connection file is changed (rh #727501)
Chain up to parent's commit_changes() even if in-memory and on-disk data are the
same; they are the same when another process changes the on-disk file. Just make
sure not to write out the data needlessly when same.

This fixes a regression caused by 9cba854fa0.
It exhibits e.g. by not auto-activating connection when ONBOOT is changed from
"no" to "yes". Connection "updated" signal was not emitted and listeners like
NMPolicy was not prodded.
2011-08-02 12:18:43 +02:00
Dan Williams
ba390d2430 ifcfg-rh: add testcase for PEAP anonymous identity (rh #708436) 2011-07-18 22:40:45 -05:00
Jiří Klimeš
3c0bf572c4 ifcfg-rh: read IEEE_8021X_ANON_IDENTITY for PEAP too (rh #708436) 2011-07-15 11:28:27 +02:00
Dan Williams
8e929b1e1b ifcfg-rh: fix for three-digit prefixes
The regex only caught prefixes up to 99; anything over that was
truncated to two digits.
2011-07-05 23:27:50 -05:00
Dan Williams
50867cc461 ifcfg-rh: don't try to set a prefix of 0
It's not a valid prefix since NM determines the default routes
automatically, and thus routes and addresses with a prefix of
zero should not be used in config files.
2011-07-05 23:17:14 -05:00
Jiří Klimeš
18b81930ce ifcfg-rh: change MACADDR_BLACKLIST to HWADDR_BLACKLIST (to correspond to HWADDR key) 2011-06-30 17:58:31 +02:00
Jiří Klimeš
b1afd46f65 ifcfg-rh: support "mac-address-blacklist" property in ifcfg-rh plugin
ifcfg-rh plugin now reads/writes the property as MACADDR_BLACKLIST variable.
The variable is space-separated list of MAC addresses in the standard
hex-digits-and-colons notation.
E.g. MACADDR_BLACKLIST="7e:d8:c0:85:58:7f 00:1e:65:30:d5:c7"
2011-06-30 16:46:33 +02:00
Jiří Klimeš
f340c44fed ifcfg-rh: fix an assertion failure and read-after-free error for invalid MACs 2011-06-30 14:52:49 +02:00
Dan Williams
a5850e82bc ifcfg-rh: fix distcheck after c2dbd1f836
IPV6_FAILURE_FATAL is now read and defaults to TRUE for ifcfg files
even if IPv6 is turned off.  That means that if we write a connection
for which NM_SETTING_IP6_CONFIG_MAY_FAIL is FALSE but IPv6 is disabled,
ifcfg-rh won't write out IPV6_FAILURE_FATAL (because IPv6 is disabled
so why bother writing out IPv6-related settings) but on re-read it will
treat the absence of IPV6_FAILURE_FATAL as TRUE/yes.  This leads to
a mismatch between the connection that was written out (which will
have NM_SETTING_IP6_CONFIG_MAY_FAIL=FALSE and no IPV6_FAILURE_FATAL)
and the re-read connection (which will have
NM_SETTING_IP6_CONFIG_MAY_FAIL=TRUE since a missing IPV6_FAILURE_FATAL
is treated as NM_SETTING_IP6_CONFIG_MAY_FAIL=TRUE).
2011-06-20 18:41:56 -05:00
Jiří Klimeš
502548b6ca ifcfg-rh: fix IPV4_FAILURE_FATAL handling and memory leaks, when IPv4 is disabled 2011-06-16 12:30:38 +02:00
Jiří Klimeš
c2dbd1f836 ifcfg-rh: read some more IPv6-related values as well even if IPV6INIT=no
We need to read IPV6_FAILURE_FATAL and other values, even if IPv6 is disabled.
Else the variables would use default values, which may not be right. Then
switching between methods "Ignore" and "Automatic" in a GUI would change value of
IPV6_FAILURE_FATAL property, even if it's not touched explicitly.
2011-06-16 11:14:52 +02:00
Jiří Klimeš
17bc5867dc ifcfg-rh: socket() returns -1 on failure 2011-06-15 10:43:07 +02:00
Jiří Klimeš
6fe22d99f0 ifcfg-rh: fix possible crash when route file creation fails 2011-06-14 17:15:51 +02:00
Dan Williams
9cba854fa0 settings: ensure transient secrets are ignored when rereading connections (rh #703785)
When a connection changes on-disk, the in-memory copy of it may contain
transient secrets (agent-owned or not saved) that dont' get written out
to disk.  When comparing the on-disk copy to the in-memory copy make sure
transient secrets are ignored so that we don't re-read the on-disk copy
needlessly.
2011-06-07 18:39:18 -05:00
Jiří Klimeš
e30287aa84 ifcfg-rh: fix emitting signal for unmanaged specs when removing connection (rh #698202)
The signal was emitted in case the removed connection was managed instead of
for unmanaged connection. Thus the signal had no effect.
That caused incorrect behaviour in case of changing NM_CONTROLLED=no to yes.
That didn't enable the device; only after the file was changed for the second time.
2011-04-20 12:26:20 -04:00
Dan Williams
258912524e ifcfg-rh: fix writing out WPA connection which is changed to open (rh #695604)
We need to remember to clear out keys that aren't getting used since
we're not rewriting the whole ifcfg file.
2011-04-19 15:42:08 -05:00
Jiří Klimeš
0acd1d322b ifcfg-rh: fix some memory leaks in tests (test-ifcfg-rh.c) 2011-04-14 16:57:34 +02:00
Jiří Klimeš
0937b985da ifcfg-rh: fix some memory leaks in ifcfg-rh plugin 2011-04-14 16:56:20 +02:00
Jiří Klimeš
dae8ab9be9 ifcfg-rh: fix memory leaks in tests (test-ifcfg-rh-utils.c) 2011-04-14 12:00:32 +02:00
Jiří Klimeš
92b55e709a ifcfg-rh: fix read-after-free error in reader.c 2011-04-14 11:41:55 +02:00
Jiří Klimeš
b7b5599fb3 ifcfg-rh: add testcases for IPv4 manual addresses 2011-04-14 10:53:26 +02:00
Jiří Klimeš
ccd39a8cb9 ifcfg-rh: adjust handling IPADDRn, PREFIXn (NETMASKn) and GATEWAYn (rh #658907)
Now that initscripts also support IPADDRn syntax, update the implementation
to match the intitscripts' one (see rh #633984)
Basically, writer produces IPADDR0 .. IPADDR255. reader is more tolerant and
supports older configs too: IPADDR, IPADDR0, IPADDR1 could be missing, from
IPADDR2 up the indexes have to be contiguous.
2011-04-14 10:30:51 +02:00
Dan Williams
d90e6423c8 ifcfg-rh: fix up s390 CTC adapter reading and writing (bgo #647578) (rh #641986) 2011-04-12 15:38:47 -05:00
Dan Williams
5af6a4baec ifcfg-rh: add testcase for S390 CTC-type connections (bgo #647578) (rh #641986) 2011-04-12 15:03:09 -05:00
Dan Williams
6cbb44bc97 ifcfg-rh: fix some missing tests in tarball
The tests were missing, and because of the way the test was structured,
the tests passed.
2011-03-21 17:44:47 -05:00
Kjartan Maraas
b224ab8e56 trivial: let g_free and g_strdup handle NULL (bgo #644763) 2011-03-15 00:08:58 -05:00
Kjartan Maraas
c2b4b9c1d7 build: fix return types (bgo #644665)
Some functions were returning FALSE or 0 instead of NULL.
2011-03-14 01:05:51 -05:00
Dan Williams
af7e26b39a ifcfg-rh: fix reading and writing of Dynamic WEP with EAP-LEAP connections
These are distinct from old-school LEAP (ie, Network EAP) in that
they are standard Dynamic WEP with LEAP as an EAP method and use
open-system authentication.  Old LEAP uses the non-standard LEAP
authentication algorithm.  The config for each is different and thus
we need to make sure we handle both cases.
2011-03-14 00:25:14 -05:00
Jiří Klimeš
c207d020f7 core: use nm_connection_get_id() and nm_connection_get_uuid() to simplify code 2011-03-08 13:41:28 +01:00
Jiří Klimeš
78b1260af4 ifcfg-rh: fix testcases now that timestamps are no longer written
Timestamps are no longer written to the connection file itself, but
are kept in a lookaside file in /var to allow for read-only or
stateless /etc and to ease system administration and deployment.
2011-03-08 11:58:00 +01:00
Jiří Klimeš
2e3e171171 ifcfg-rh: get rid of LAST_CONNECT
timestamps are now kept in /var/log/NetworkManager/timestamps
2011-03-08 11:49:49 +01:00
Dan Williams
5bce4adfbb ifcfg-rh: clean up temporary testcase certificates files (fixes distcheck) 2011-03-03 19:15:49 -06:00
Dan Williams
9e45d7c8cb ifcfg-rh: test writing TLS secret flags and reading them back in 2011-03-03 18:37:33 -06:00
Dan Williams
e165511ed8 ifcfg-rh: fix handling of private key password secret flags 2011-03-03 17:32:29 -06:00