Commit Graph

15047 Commits

Author SHA1 Message Date
Dan Winship
7ff3d1500e main: make handling of --no-daemon saner by using G_OPTION_FLAG_REVERSED
https://bugzilla.gnome.org/show_bug.cgi?id=700550
2013-05-21 09:30:09 -03:00
Dan Winship
fd2a3a7561 devices: fix recursive-state-change check
nm_device_state_changed() had a check to make sure it wasn't entered
recursively (which had been a source of bugs in the past), but it was
global rather than per-device, so it caused errors when VLANs changed
state in response to their parent device changing state. Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=698619
2013-05-20 16:38:34 -03:00
Dan Winship
2bb5178897 devices, platform: fix up carrier-detection detection
Some devices aren't expected to support carrier detection, so there's
no reason to have NMDevice log about it. Move that message into
NMDeviceEthernet, where failure to support carrier-detect really is
worth mentioning.

Also, make NMDeviceEthernet use NMPlatform for carrier-detection
detection (and move the MII carrier-detect-support check from
NMDeviceEthernet into NMLinuxPlatform).

Finally, have NMDeviceGeneric actually check whether the device
supports carrier detect, rather than just always assuming it doesn't.
2013-05-20 16:38:34 -03:00
Dan Williams
be807819b0 core: clean up and simplify device capabilities handling
This is really, really old 2007-era code.  Any NMDevice that gets
created is already supported, so there's no reason to have every
device set NM_DEVICE_CAP_NM_SUPPORTED.  For those subclasses that
only set that capability, we can remove the subclass method
entirely.  Next, it turns out that the "type capabilities" code
wasn't used anywhere, so remove that too.  Lastly, "cipsec"
interfaces haven't been used on linux in about 5 years (they
were created by the Cisco binary-only IPSec kernel module for
Cisco VPNs long before vpnc and openswan came around) so we can
remove that code too.
2013-05-20 16:38:34 -03:00
Dan Winship
38459f5a00 core: remove NMDeviceWired
With carrier handling moved to NMDevice, the only thing left in
NMDeviceWired was speed, which was actually ethernet-specific anyway.
So move that to NMDeviceEthernet, and then kill NMDeviceWired.
2013-05-20 16:38:34 -03:00
Dan Winship
82222d3898 core: move carrier handling to NMDevice
Move carrier handling for most device types into NMDevice.

Based on an earlier patch by Pavel Šimerda.
2013-05-20 16:38:33 -03:00
Dan Winship
5a223b9089 core: make nm-properties-changed-signal always export the right properties
Change the way that nm-properties-changed-signal works, and parse the
dbus-binding-tool-generated info to get the exact list of properties
that it's expected to export.

This makes NM_PROPERTY_PARAM_NO_EXPORT unnecessary, and also fixes the
problem of properties like NMDevice:hw-address being exported on
classes where it shouldn't be.
2013-05-20 16:38:33 -03:00
Dan Williams
04cb58eacd core: convert the DBus manager to a single-ref object
It's created very, very early and never needs to be unrefed
by anything except the main() function.
2013-05-20 16:38:33 -03:00
Dan Winship
e3bd3278e9 core: belatedly remove "hw-address" property #defines 2013-05-20 16:38:33 -03:00
Dan Williams
1d8ab72a60 libnm-util: fix hashing of secrets broken by 4d326182
4d326182 changed connection hashing slightly such that now base type settings
are always returned even if they are empty. Unfortunately a bunch of code in
the settings hashed connections with the ONLY_SECRETS flag and then checked
whether the returned hash was NULL or not to determine whether there were
any secrets, and then called nm_connection_update_secrets() with the hash.

nm_connection_update_secrets() would fail in the case where a setting
name was given, but the passed-in secrets hash did not contain any secrets
for the requested setting.  Instead, the function should return success
to match the semantics of passing in an entire connection hash which may
not have any secrets either.
2013-05-20 13:56:48 -05:00
Dan Williams
43f64489d8 gsystem: update gsystem which got reverted by 0f91894132 2013-05-20 13:28:49 -05:00
Pavel Šimerda
0f91894132 ifnet: replace SIOCGIFHWADDR ioctl 2013-05-18 23:14:19 +02:00
Pavel Šimerda
f63c7f8ee6 platform: link mtu setting 2013-05-18 04:38:17 +02:00
Pavel Šimerda
6c55e5a1c6 platform: link address setting 2013-05-18 04:38:17 +02:00
Pavel Šimerda
a28a880214 platform: vlan support 2013-05-18 04:38:17 +02:00
Pavel Šimerda
aa943f3115 platform: cleanup: use link_get, not rtnl_link_get
It sets up the correct error value for free and is more consistent.
2013-05-18 04:38:17 +02:00
Pavel Šimerda
b0c88d7b59 platform: don't clear the whole NMFakePlatformLink
This is necessary for freeing data structures at finalize time.
2013-05-18 04:38:17 +02:00
Dan Williams
8baebadcb5 core: update libsystem to build with glib 2.32 2013-05-17 15:56:03 -05:00
Sweta Kothari
da58786abf po: updated Gujarati (gu) translation (bgo #700360) 2013-05-17 20:29:26 +02:00
Shankar Prasad
2612af618c po: updated Kannada (kn) translation (bgo #700271) 2013-05-17 20:24:58 +02:00
Krishna Babu K
1ea315e800 po: updated Telugu (te) translation (bgo #700002) 2013-05-17 20:21:14 +02:00
Rajesh Ranjan
b5c7510411 po: updated Hindi (hi) translation (bgo #699559) 2013-05-17 20:16:21 +02:00
Colin Walters
468c08511c core: add libgsystem as a git submodule
And change src/main.c to use the local allocation macros.  This
results in much cleaner code, as one can see from the diff.

Because libgsystem is designed for nonrecursive make, it fits best in
the current recursive setup if we build . first.  This will be a lot
nicer when we switch NM to a nonrecursive setup.
2013-05-16 14:08:09 -05:00
Pavel Šimerda
cd09159201 trivial: typedesc to typename 2013-05-16 14:58:44 +02:00
Pavel Šimerda
f714c1033f platform: fix NMPlatformLink/NMFakePlatformLink type mismatch 2013-05-16 14:58:44 +02:00
Jiří Klimeš
0376f0be16 cli: make prompts asking for user input translatable in 'nmcli device' 2013-05-16 14:03:49 +02:00
Jiří Klimeš
55e816b36e man: nmcli man page update for numeric bonding modes 2013-05-16 10:44:17 +02:00
Jiří Klimeš
d0b74b7d8d cli: 'connection add': allow numeric bonding modes 2013-05-16 10:44:17 +02:00
Jiří Klimeš
68dd1cf880 man: nmcli man page update for '--wait' and removing '--nowait', '--timeout'
and '--private' -> 'private yes|no' change
2013-05-16 10:37:57 +02:00
Jiří Klimeš
2b843dac50 cli: change '--private' to 'private yes|no' in 'nmcli dev wifi connect'
Missing 'private' argument default to private=no, the same way as before.
2013-05-16 10:28:40 +02:00
Jiří Klimeš
fa6ecaed32 cli: remove '--nowait' and '--timeout' options and use global '--wait' instead
'--wait 0' corresponds to '--nowait'
'--wait n' for n > 0 corresponds to '--timeout n'
2013-05-16 10:28:40 +02:00
Jiří Klimeš
7d55426992 cli: add global '--wait <seconds>' option - timeout waiting for operations
--wait <0-maxint>

0    : means "do not wait". nmcli exits immediatelly with success.
1... : if operation doesn't finish within the timeout, nmcli exits with an error
2013-05-16 10:28:40 +02:00
Dan Williams
8bab0c8203 core: ensure newly-created master interfaces are ready for activation
Reverts part of

2226a00cc2
core: add a "default-unmanaged" setting for devices

Newly-created master interfaces are in the UNAVAILABLE state, but if
they were created in response to a slave connection being activated,
the master must be activated immediately too.  But a device cannot
be activated unless it's in the DISCONNECTED state, so restore that
state change.
2013-05-15 14:56:36 -05:00
Dan Williams
4ca885f5e3 core: fix list manipulation when removing multiple slaves
nm_device_release_one_slave() may change the list head, but the
for loop in nm_device_master_release_slaves() can't handle that.
Use a while loop instead.
2013-05-15 14:39:16 -05:00
Dan Williams
7d12ede07b libnm-glib: fix documentation C&P error 2013-05-15 13:44:51 -05:00
Pavel Šimerda
c43b7703cb netlink: fix rtnl_route_alloc_cache() call
Same fix as in commit 195a09d7c0.

NL_AUTO_PROVIDE is not a valid flag for this call and it's coincidental
with ROUTE_CACHE_CONTENT, which is not what we want.

One result arising from this fix is that per-device routes are now
assigned priorities correctly. This means, for instance, you can have a
wired and wireless connection on the same network, and have the wired
connection always take precedence whilst it's available.

Signed-off-by: Michael Chapman <mike@very.puzzling.org>
2013-05-15 16:40:07 +02:00
Dan Williams
b9ea3ed1b1 build: don't install nm-dhcp-helper dbus permissions if we don't need to
The DHCP helper uses a private socket when building with dbus-glib >= 0.100,
which means we don't need to install a D-Bus permissions file.
2013-05-14 15:37:41 -05:00
Dan Williams
408cafc889 build: fix detection of Qt on non-Fedora platforms (bgo #691583)
Apparently Qt.pc is a Fedora-specific file to allow parallel install
of Qt3 and Qt4.  We should instead be using the upstream QtCore.

https://bugzilla.gnome.org/show_bug.cgi?id=691583
2013-05-14 14:50:32 -05:00
Dan Williams
bbf0720a8d trivial: remove a bit of debug code 2013-05-14 11:13:00 -05:00
Dan Williams
3a5bf0517c build: always generate docs at dist time (bgo #700093)
dist tarballs shouldn't ever be released without the documentation,
and this allows us to build the tarballs with pre-generated docs
that get installed on the end system, but don't need to be built
there.  So the end system doesn't need gtk-doc installed, only
the dist system does.

https://bugzilla.gnome.org/show_bug.cgi?id=700093
2013-05-14 10:53:46 -05:00
Dan Williams
f762fa58d6 ifupdown: recalculate unmanaged specs on interface change (debian #707070)
If a kernel interface changes its MAC address, and NM is not
supposed to manage that interface, ifupdown needs to notice
that MAC address change and tell NM that the unmanaged devices
have changed, so that NM continues to not touch the device
after the MAC has changed.
2013-05-14 10:45:48 -05:00
Dan Williams
a37051127e ifupdown: fix naming confusion in plugin hash tables
well_known_interfaces -> eni_ifaces, since it's a hash of any
interfaces read from /etc/network/interfaces.

well_known_ifaces -> kernel_ifaces, since it's a hash of any
network subsystem interface the kernel knows about
2013-05-14 10:45:46 -05:00
Dan Williams
b2c6709690 ifupdown: clarify name of connections hash
'iface_connections' is really the list of all NMIfupdownConnections
known to the plugin, read from /e/n/i and hashed by block name.  Since
ifupdown doesn't store anything *except* connections from /e/n/i,
just rename it to 'connections' to reduce confusion with the
well_known_interfaces and well_known_ifaces hashes.
2013-05-14 10:41:39 -05:00
Jiří Klimeš
1ca514581f man: minor cleanup in nmcli manual page (for 'nmcli device wimax list') 2013-05-14 10:16:59 +02:00
Dan Winship
43c4a45c4d devices: fix a bug in activation logic
It *is* legitimate to (re-)activate a connection on an already-active
device, so remove the newly-added "sanity check" preventing that.
Pointed out by jklimes.
2013-05-13 10:57:38 -04:00
Adrian Bunk
f5c29c9694 configure.ac cleanups
- unconditionally use AM_SILENT_RULES, automake 1.11 is already required
- remove the following macros whose results were unused:
  - AC_PROG_INSTALL
  - AC_HEADER_STDC
  - AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h)
  - AC_TYPE_MODE_T
  - AC_HEADER_TIME
  - AC_CHECK_FUNCS(select socket uname)
- remove the following obsolete macros (not relevant on non-historic systems):
  - AC_PROG_GCC_TRADITIONAL
  - AC_FUNC_MEMCMP

https://bugzilla.gnome.org/show_bug.cgi?id=700169
2013-05-13 10:29:37 -04:00
Dan Williams
448fd7c2aa wifi: only remove AP on link timeout if not found by supplicant
If for some reason the connection is disrupted and the AP rejects
reconnection attempts (perhaps the driver has a bug, you get
disconnected, and the AP rejects association because it thinks
you're already associated), the AP object was being removed from
the scan list by code meant to handle out-of-range or turned-off
APs.  Thus even though the AP was in-range, it wouldn't be
found and the connection retried until the next scan.

Instead, only remove the AP object from the scan list if the
supplicant hasn't been able to exchange any frames with the
AP.  This preserves the out-of-range handling, becuase the
supplicant wouldn't be able to talk to the AP and thus
'ssid_found' will be FALSE, and also ensures that an in-range
but confused AP says in the scan list and will be retried
immediately.
2013-05-11 08:09:28 -05:00
Pavel Šimerda
406a1912ca platform: fix NMFakePlatformLink handling 2013-05-10 22:31:06 +02:00
Pavel Šimerda
0ba6f32bce platform: add NMFakePlatformLink
This will help to store more link attributes in NMFakePlatform link
array than in public NMPlatformLink array. Some of the future
attributes will not be part of the NMPlatform API.
2013-05-10 21:41:27 +02:00
Pavel Šimerda
342134179c platform: return NULL type_name on failure 2013-05-10 21:41:27 +02:00