Commit Graph

10071 Commits

Author SHA1 Message Date
Dan Williams
06e3c6d02f wifi: make Wi-Fi support a plugin
Make Wi-Fi support a plugin using the new device factory interface.
Provides a 7% size reduction in the core NM binary.

        Before    After
NM:    1154104  1071992  (-7%)
Wi-Fi:       0   110464

(all results from stripped files)
2014-05-13 12:38:43 -05:00
Dan Williams
b46b28d18f wifi: remove old ipw rfkill polling functionality
Older Intel "ipw" devices (ipw2100, ipw2200, and ipw2915) only gained
kernel rfkill subsystem integration with 2.6.33.  Before then their
custom rfkill functionality had to be polled via sysfs.  Since we now
require at least a 3.x kernel, remove this old code.
2014-05-13 12:06:58 -05:00
Thomas Haller
b5ffcf46f1 doc: update documentation to show all logging domains
Also, mention the deprecated alias HW in man/NetworkManager.conf

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-12 19:12:28 +02:00
Thomas Haller
3a19de80f7 nmcli/completion: fix logging domain "OLPC" for nmcli bash completion
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-12 19:00:00 +02:00
Thomas Haller
8e88b4e2fa core/logging: trivial renaming internal LOGD_OLPC_MESH name to LOGD_OLPC
The domain LOGD_OLPC_MESH is known as "OLPC". This is the only case where
the internal name LOGD_X does not correspond to the external name X.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-12 18:52:27 +02:00
Thomas Haller
4e8a91e6f8 Revert "contrib: fix "Illegal sequence '..' in Fedora specfile Release"
This reverts commit 8f44bf047f.

This spec file is not intended to be passed directly to rpmbuild,
because it contains placeholders that are substituted by the build.sh
script.

As such, the version we want to get is
  NetworkManager-0.9.9.1-7922.66eb52b53d.fc20.src.rpm
instead of
  NetworkManager-0.9.9.1-792266eb52b53d.fc20.src.rpm

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-12 13:00:27 +02:00
Jiří Klimeš
810e934892 libnm-util: add nm_utils_rsa_key_encrypt_aes() encrypting RSA key with AES 2014-05-12 10:46:41 +02:00
Jiří Klimeš
b3e39d4275 libnm-util: allow AES cipher for private keys
and add a testcase to check the encryption with AES.
2014-05-12 10:46:41 +02:00
Jiří Klimeš
a9f5494d4d libnm-util: do not call crypto_md5_hash() for empty passwords
It happens when one selected private key, but didn't provide the password yet
in nm-connection-editor.

(nm-connection-editor:11080): libnm-util-CRITICAL **: crypto_md5_hash: assertion `password_len > 0' failed
2014-05-12 10:46:41 +02:00
Jiří Klimeš
31cd3fe444 libnm-util: return better error messages on failures for _set_ functions 2014-05-12 10:46:41 +02:00
Dan Williams
66eb52b53d merge: remove mostly-unused hostname provider functionality (bgo #727609) 2014-05-09 15:33:42 -05:00
Dan Williams
b732240026 core: remove the HostnameProvider interface
It's only used to keep the DHCPManager up-to-date with hostname changes,
and that can be accomplished in much less code by just having NMManager
set a hostname on the DHCPManager itself.
2014-05-09 15:33:32 -05:00
Dan Williams
d336a78a0e core: don't ref/unref the DHCP manager
It's a singleton anyway, so no need to ref/unref it.  Just use it.
2014-05-09 15:33:32 -05:00
Dan Williams
11f9855223 core: emit dhcp4/dhcp6-change dispatcher events if other IP completes first (rh #1091296) (bgo #729284)
If IPv6 completes first it would emit the "up" dispatcher event with IPv6
details and move the device to ACTIVATED state.  But if DHCPv4 was still
running, no dispatcher event would be emitted with the DHCPv4 information
until the first lease renew.  Thus dispatcher scripts would not receive
DHCPv4 information for quite some time.

Ensure that if the other IP version completes first, that when the slower
method's DHCP completes, that it emits the appropriate dhcp4-change
or dhcp6-change event so that dispatcher scripts get the information
as soon as it's available.

https://bugzilla.gnome.org/show_bug.cgi?id=729284
2014-05-09 15:25:27 -05:00
poma
8f44bf047f contrib: fix "Illegal sequence '..' in Fedora specfile Release
$ rpmbuild -bp NetworkManager.spec
error: line 47: Illegal sequence ".." in: Release: 10.git20140508..429023b.fc21

Signed-off-by: poma <pomidorabelisima@gmail.com>
2014-05-09 11:56:30 -05:00
Aleksander Morgado
2b82fd0e1d ppp: avoid pppd exiting when no traffic going through
By default pppd will suicide if there are 600s without traffic going through:

  pppd[30575]: Terminating connection due to lack of activity.
  pppd[30575]: Connect time 10.0 minutes.
  pppd[30575]: Sent 0 bytes, received 0 bytes.

This is likely to happen when e.g. the system has both a mobile broadband
connection and an ethernet connection, as the ethernet will take the default
route.

So, avoid this behaviour by explicitly telling pppd not to exit if idle.
2014-05-09 11:54:46 -05: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
Dan Williams
429023b24e policy: remove old /etc/hosts cleaning code (bgo #729689)
NetworkManager stopped touching /etc/hosts in late 2010 before the
NetworkManager 0.8.1 release.  The code in nm-policy-hosts.c's only
purpose is to remove any of the entries that NetworkManager added long
ago.

I think we're at the point where people have already upgraded to
NetworkManager 0.8.1 or later and thus this code would be a NOP.  The
only risk is that some stale /etc/hosts entries will be left if you
upgrade from NM 0.8 or lower to anything higher than that.

FWIW, Ubuntu Lucid (10.04) ships NM 0.8.0 and SLES11 ships NM 0.7.0, so
if users of these distros upgraded to a later NetworkManager they might
run into the stale entries issue if we remove this code from NM.  But
given how old these distros are, it seems unlikely that users will do a
direct upgrade to something 4+ years newer...

https://bugzilla.gnome.org/show_bug.cgi?id=729689
2014-05-08 15:09:59 -05:00
Thomas Haller
dd3d5b2220 contrib/rpm: merge branch 'automation' (add scripts to build RPM from master)
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 18:17:58 +02:00
Thomas Haller
fb8a5f7ac9 contrib/rpm: update spec file to explicitly --disable-gtk-doc
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 18:16:37 +02:00
Thomas Haller
b322642a03 contrib/rpm: add script build_clean.sh to create clean RPM files 2014-05-07 18:16:36 +02:00
Thomas Haller
886366d0fd contrib/rpm: update spec file after renaming NM plugins
Rename NetworkManager-atm to NetworkManager-adsl
and NetworkManager-bt to NetworkManager-bluetooth.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 18:16:36 +02:00
Thomas Haller
f9229a33c7 contrib/rpm: modify spec file to create packages for NM plugins
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 18:16:36 +02:00
Thomas Haller
b057d5179e contrib/rpm: build.sh uses the number of git commits as RELEASE_VERSION
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 18:16:36 +02:00
Thomas Haller
a9ed313956 contrib/rpm: fix release version in rpm change log
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 18:16:36 +02:00
Thomas Haller
6db1d68e3f contrib/rpm: update NetworkManager.spec
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 18:16:13 +02:00
Thomas Haller
8b6966bfe7 contrib/rpm: fix spec file for fc20
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 17:14:36 +02:00
Thomas Haller
8871aad554 contrib/rpm: update spec file to build nmtui from in-tree source
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 17:14:36 +02:00
Thomas Haller
cc45fe0a7e contrib/rpm: add spec file and script to build a RPM package
This one spec file is intended to build packages for F18, F19, F20, and
rhel-7.0.

The build script can be tweaked by setting environment variables, but it
is supposed to choose the right default values on it's own.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 17:14:36 +02:00
Thomas Haller
f1440bff12 build: fix out-of-tree build for rdisc/tests
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 15:02:17 +02:00
Thomas Haller
815245320d libnm-util: fix crash in NMSettingInfiniband when setting key or parent property
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-07 09:13:33 +02:00
Dan Williams
80a4b15252 merge: support WWAN autoconnect, multiple modems with rfkill, low-power mode (bgo #728044)
https://bugzilla.gnome.org/show_bug.cgi?id=728044
2014-05-06 21:54:44 -05:00
Dan Williams
837bf2e33a wwan: set modem to low power state when disabling
When WWAN airplane mode is enabled, set modems to low power state to
ensure they are in airplane mode if either (a) the machine does not
have an rfkill switch, or (b) the modem is not tied to any rfkill
switch (eg, external USB/SDIO/etc).
2014-05-06 21:51:25 -05:00
Dan Williams
e7987b9185 wwan: read device & SIM identifiers from ModemManager
We'll use these later for device/SIM specific operations.
2014-05-06 21:51:25 -05:00
Dan Williams
d043094195 wwan: disable autoconnect if the given SIM PIN was wrong
If the given PIN was wrong, we really don't want to try that PIN
again automatically because it might lock the SIM.  To ensure that
doesn't happen, disable autoconnect so that the user must manually
request reconnection.

(this doesn't fix auto-connect-with-a-wrong-PIN completely, as
autoconnect is reset when resuming from sleep, but it's a start)
2014-05-06 21:51:24 -05:00
Dan Williams
6080425088 wwan: use modem states instead of enabled/connected properties
Determining when the NMDeviceModem is available and when different
connections are available is easier if the modem's state is tracked,
instead of using the separate Enabled and Connected properties.
These properties could not accurately represent the SIM lock state
and prevented NetworkManager from making the modem available for
auto-activation when locked, even if a PIN was available.

In this new scheme, the NMDeviceModem is UNAVAILABLE when the
ModemManager modem state is FAILED, UNKNOWN, or INITIALIZING.  It
transitions to the NM DISCONNECTED state when the modem has finished
initializing and has not failed.

Once the NMDeviceModem is in DISCONNECTED state it can be activated
even if the SIM is locked and a PIN is required; the PIN will be
requested when starting activation, either from the connection itself
or via a secrets request.  This makes auto-activation of WWAN
connections possible.

This also allows us to consolidate code dealing with modem enable/disable
into the base NMModem class using the modem state, and to log more modem
information for debugging purposes.
2014-05-06 21:48:55 -05:00
Dan Williams
bb1fece6e6 wwan: make device available whenever it's not rfkilled
Since the ModemManager enabled/disabled state is a user-changable
one, and since NM can enable the modem when starting a connection,
allow modems to be available for activation whenever they are not
in airplane mode.  This makes WWAN autoconnect=true connections
actually autoconnect.

If the first connection fails during ModemManager setup for fatal
reasons (missing SIM, bad PIN, not registered), autoconnect will
be blocked for that connection until activation is manually
requested and succeeds.
2014-05-06 14:15:50 -05:00
Dan Williams
5d8197a80b core: ignore modem management service state in rfkill handling
rfkill handling should only pay attention to actual rfkill, since
rfkill is global but the modem management service state is per-device.
Thus calculating a global state from multiple devices is very
likely to get things wrong.

Remove all of the code that used to handle that sort of thing,
which means removing the 'enable-changed' signal from the Modem
device, since now nothing external to the modem device should
need to care whether it's enabled internally or not.
2014-05-06 14:15:50 -05:00
Dan Williams
876ec0c755 rfkill: toggle WWAN rfkill state on user enable/disable
Poke the kernel's WWAN rfkill state when the user changes our
WWANEnabled property, the same as we do for WiFi.  Also restore
saved WWAN state on startup, as we do for WiFi.  No good reason
why WWAN should be different here.
2014-05-06 14:15:50 -05:00
Jiří Klimeš
b764766517 trivial: fix typo BBSID -> BSSID 2014-05-06 16:55:50 +02:00
Thomas Haller
7b65c80712 core: minor cleanup to release GValue for G_TYPE_OBJECT
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-05 20:59:51 +02:00
Thomas Haller
c30fd99f6f platform: merge branch 'th/bgo726275_div_refact_platform'
https://bugzilla.gnome.org/show_bug.cgi?id=726275

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:45:10 +02:00
Thomas Haller
d16761d939 platform/trivial: rename object type enums to give them a common name prefix
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:23 +02:00
Thomas Haller
59a56a0aff platform: add function nm_platform_link_cmp()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:23 +02:00
Thomas Haller
78b8af6651 core: preserve later expiry in nm_ip[46]_config_add_address()
When adding the same addresses from different sources, we want to
preserve the times with the later expiry . If the new address comes
from the kernel itself, we treat it specially and prefer the times
from other sources.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:23 +02:00
Thomas Haller
9cd7b40a04 platform: add nm_platform_ip_address_cmp_expiry()
This compares two addresses and returns which one has a longer
remaining life (i.e. a later expiry timestamp).

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:23 +02:00
Thomas Haller
a8c17a2517 platform: extract common fields of IPv4/IPv6 addresses and routes to base struct
Especially the calculation of timestamps is identicall for addresses.
By creating a "base struct", we can use the same code for that, because
NMPlatformIP4Address and NMPlatformIP6Address can now both be treated as
NMPlatformIPAddress (and the same for routes).

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:22 +02:00
Thomas Haller
09d3c833fd platform: refactor signals by combining added/changed/removed
Before platform raised 3 signals for each object type. Combine
them into one and add a new parameter @change_type to distinguish
between the change type.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:22 +02:00
Thomas Haller
38ffd3eb9b platform: refactor build_rtnl_addr() by replacing addr4_to_broadcast()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:22 +02:00
Thomas Haller
857e5e0b21 platform: don't zero terminate the result GArray of get_all() functions
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-05-03 03:44:22 +02:00