Commit graph

2541 commits

Author SHA1 Message Date
Jiří Klimeš
9aa7efcf28 core: reset auto retries counter when cable is replugged
When re-plugging we may be in a different network. So we should try the
compatible connections again.

Based on a patch from Mikhail Efremov.
2011-05-30 13:07:49 +02:00
Dan Williams
232bb3cea2 settings: suppress warnings about NULL hash tables 2011-05-26 19:43:19 -05:00
Dan Williams
459e7b9518 api/core: add ActiveConnection property to device objects
Enables easier traversal of the object hierarchy; if a client is
watching signals on a device they can easily get back to the
parent NMActiveConnection object to grab connection details or
status.
2011-05-26 19:19:32 -05:00
Jiří Klimeš
ce05bdb62e core: fix copying SSID from the connection to the hidden AP 2011-05-26 14:08:10 +02:00
Dan Williams
e75f5bc862 settings: only update transient secrets if they exist
Otherwise here the transient_secrets GHashTable will be NULL, and
g_hash_table_iter_init() doesn't like that much.
2011-05-25 18:52:55 -05:00
Dan Williams
a2dcf524bb core: silence error if ConsoleKit database isn't found the first time (rh #695617)
Ignore the first error if the CK database isn't there yet.
2011-05-25 15:14:12 -05:00
Dan Williams
730f10d707 settings: ensure connection changes don't overwrite transient secrets
Here's the problem:

- NM requests secrets
- secret agent returns secrets including some that are agent-owned or
  not-saved (ie, transient secrets)
- for whatever reason (other secrets are system-owned, whatever) the
  connection gets written back out to disk
- at some point later inotify triggers a connection re-read from disk
- the connection is read from disk, but doesn't contain the agent-owned
  or not-saved secrets, because they obviously don't get saved
- nm_settings_connection_replace_and_commit() blows away the agent-owned
  or not-saved secrets that the agent originally returned
- device activation no longer has the transient secrets

Re-reading connection data from disk shouldn't change transient secrets;
instead we need to merge the just-read system-owned secrets with whatever
transient secrets an agent sent.  Transient secrets should only be cleared
by nm_connection_clear_secrets() to ensure that they stick around for as
long as we need them.
2011-05-25 11:44:28 -05:00
Dan Williams
0b5ab39dbf wifi: always fix up Ad-Hoc frequency when connecting (rh #699203)
This used to only happen for user-created APs, but the supplicant
always wants a frequency no matter what, and the kernel drivers will
normally merge with any other IBSS with the same SSID no matter what
frequency is used, so we might as well just pass something since
it doesn't really matter in the end anyway.

As a bonus we get to remove the user_created stuff since it doesn't
really matter much anymore.
2011-05-24 12:37:55 -05:00
David Woodhouse
1951029908 core: complete the openconnect migration hack; add flags for the saved secrets too (bgo #650383)
Commit e083cd5c63 stopped openconnect from
saving its secrets. It'd been working for a whole three minutes since my
previous commit.

We need to have at least one secret with an *extant* flags setting of
NM_SETTING_SECRET_FLAG_NONE, in order to trigger a write-out of the new
set of secrets. And we might as well list all the secrets we *know* the
auth-dialog is going to use, although we know there will be some secrets
that we cannot predict in advance (the form entry boxes).
2011-05-23 13:54:03 -05:00
Dan Williams
c0387ffbc5 core: treat VPN secrets without flags as system-owned
All non-VPN secrets are considered system-owned if they do not
have any explicitly set secret flags, and this makes VPN secrets
treated the same way.  As part of the import process plugins and
the applet already update secret flags.  This ensures that VPN
secrets are treated consistently throughout the codebase.
2011-05-23 13:45:51 -05:00
Dan Williams
987a132c12 core: clean up auth handling after polkit enable/disable changes
Slash and burn the #ifdef jungle so that the flow and blocks are
cleaner and less confusing to follow.
2011-05-20 11:35:24 -05:00
Dan Williams
82d83af5ae core: rename PolkitCall to AuthCall 2011-05-20 10:55:24 -05:00
Jiří Klimeš
29a4239f43 policy: make auto-activation retries really work for RETRIES_DEFAULT attempts
Retries counter was not initialized when connections were loaded. That forced
the counter to start from -1 and continue decreasing on connection failures.
And connection attempts never stopped.
2011-05-20 13:01:04 +02:00
Philip Balister
0e45771126 core: yet more consistent usage of libnl CFLAGS and LIBS
This patch has been used in OpenEmbedded [1] since commit b167a9a9 [2][3].

[1] http://www.openembedded.org/
[2] http://cgit.openembedded.org/cgit.cgi/openembedded/commit/recipes/networkmanager/networkmanager/0002-respect-libnl-flags-also-in-dns-manager-vpn-manager-.patch?id=b167a9a9e55a7a493a7ee565cec9c7dd463362ff
[3] http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=b167a9a9e55a7a493a7ee565cec9c7dd463362ff

Signed-off-by: Philip Balister <philip@balister.org>
2011-05-19 15:40:07 -05:00
Martin Jansa
a23f3da669 core: use libnl CFLAGS and LIBS consistently
This patch is used in OpenEmbedded [1] since commit 154bd72b [2][3].

[1] http://www.openembedded.org/
[2] http://cgit.openembedded.org/cgit.cgi/openembedded/log/recipes/networkmanager/networkmanager/0001-respect-libnl-flags-also-in-backends-ip6-manager.patch
[3] http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=154bd72b1ca859afcae5ed4fe99ed611a13a475c

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2011-05-19 15:31:02 -05:00
Dan Williams
6dae3c2f33 ppp: enable pppd debug logging when PPP log domain is enabled for debuggin
Instead of just with the old environment variable.  This means we'll
log pppd debug output when the log level is changed via the D-Bus
interface now too.
2011-05-19 13:31:52 -05:00
Dan Williams
e083cd5c63 settings: when checking for system-owned secrets ignore NOT_SAVED
Previously a secret marked NOT_SAVED or NOT_REQUIRED would be
treated as a system secret when checking returned secrets.  That's
incorrect since unsaved or not required secrets aren't stored
by system settings.
2011-05-19 13:14:51 -05:00
David Woodhouse
05a959d1d6 settings: fix VPN secret flag handling in secrets returned from agents
We need to push one more level down into VPN secrets when checking
the secret flags on VPN settings.
2011-05-19 13:11:49 -05:00
Dan Williams
304d0b869b core: openconnect migration hack
Evil hack; but the problem is that before this commit anyone who
migrated connections wouldn't have the right secrets flag set in
their openconnect connections.  Figuring out some way of updating
those connections now is harder and we don't want people to have
to go through the delete-connection-file-change-applet-stamp-rerun
dance.  So we'll live with this for now...
2011-05-18 22:45:24 -05:00
Dan Williams
b6a63ff025 core: allow build-time enable/disable of PolicyKit
When PK is turned off, everything is authorized.
2011-05-18 22:38:39 -05:00
Dan Williams
f79dcb9560 core: consolidate PolicyKit code
Use one global PolkitAuthority object; we only really need to use it
in one place anyway.  So consolidate the code that uses polkit into
nm-manager-auth.c.
2011-05-18 22:20:24 -05:00
Dan Williams
9c2cce5ac9 trivial: remove unused prototype 2011-05-18 11:13:34 -05:00
Dan Williams
4d38c1a23a trivial: add missing curly brace 2011-05-18 11:10:50 -05:00
Dan Williams
a2cd94f83f wifi: ignore zero-length SSIDs in internal wifi code
Should never get these, and if we do, we should ignore them by
leaving the SSID as NULL.
2011-05-18 10:32:03 -05:00
Dan Williams
5f073ece4b wifi: return error for AddAndActivate requests for hidden APs
If there's no SSID, we can't connect at all.  So if a client passes
in a hidden AP, and doesn't send the SSID in the partial connection
info, we can't make a connection with it.  Return an error instead
of crashing.
2011-05-18 10:22:25 -05:00
Dan Williams
60c1870674 Revert "core: fix crash while connecting with AddAndActivateConnection() and SSID is missing"
This reverts commit 2b12825faa.

Fixes the problem, but the real issue was clients passing AP objects
that don't have an SSID; we need to reject connection creation
requests where the SSID can't be found.
2011-05-18 10:21:10 -05:00
Jiří Klimeš
2b12825faa core: fix crash while connecting with AddAndActivateConnection() and SSID is missing
A network with hidden SSID can appear in gnome-shell indicator applet as
<unknown> entry. Clicking it can make NM crash if there is no SSID in wireless
setting nor in AP.
2011-05-18 14:53:57 +02:00
Jiří Klimeš
5737573314 dhclient: only send hostname without domain as host-name option (rh #694758) 2011-05-13 11:44:22 +02:00
Thomas Bechtold
cecc0621ce core: recognize platform 'gadget' devices too 2011-05-12 12:14:09 -05:00
Dan Williams
74d798b6dd dispatcher: pass DHCP options as string:string hash
This is what was originally intended, but the NM-side code wasn't
doing this due to an oversight...
2011-05-11 16:01:12 -05:00
Dan Williams
bcba83592e wimax: make sure current NSP is cleared when appropriate
When removing all NSPs in the scan list clearly we should be clearing
out the current NSP as well, since it just got removed from the scan
list.  And make sure the current NSP is cleared when activation fails
or when the device becomes disconnected, since it's not connected to
anything and thus can't have a current NSP either.

The current NSP should only be set during the activation attempt and
while the device is connected.
2011-05-11 15:21:05 -05:00
Dan Williams
f74c9ebe8f wimax: don't attempt to connect while device is scanning
The WiMAX SDK will reject connect requests while the device is scanning,
which happens when right after suspend or when the wimax radio is
turned on.  Postpone the connect attempt until the device says it's
not scanning anymore instead of having the connect attempt fail
and be retried.
2011-05-11 15:21:05 -05:00
Dan Williams
5e2cda5c20 core: fix typo 2011-05-09 13:55:19 -05:00
Dan Williams
2bcd4016b4 settings: clean up signal handlers when destroying connections
Otherwise we might get crashes later.
2011-05-04 17:13:03 -05:00
Dan Williams
30c63ddcb7 settings: fix assertion checks 2011-05-04 17:12:35 -05:00
Dan Williams
c4b922ed21 core: emit textual descriptions of device state changes
Throw users a bone about what's happening.
2011-05-03 11:57:26 -05:00
Dan Williams
2e740fe308 core: fix up checks for s390 CTC device type (bgo #649025)
The original check had incorrect logic; correct it.
2011-05-03 10:38:32 -05:00
Dan Williams
f898dbf1a9 dispatcher: enhance dispatcher script environment (bgo #648382)
For VPN connections, the interface name would be that of the VPN's
IP interface, but the script environment would be the that of the
VPN's parent device.  Enhance the environment by adding any VPN
specific details as additional environment variables prefixed by
"VPN_".  Leave the existing environment setup intact for backwards
compatiblity.

Additionally, the dispatcher never got updated for IPv6 support,
so push IPv6 configuration and DHCPv6 configuration into the
environment too.

Even better, push everything the dispatcher needs to it instead
of making the dispatcher make D-Bus requests back to NM, which
sometimes fails if NM has already torn down the device or the
connection which the device was using.

And add some testcases to ensure that we don't break backwards compat,
the testcases here were grabbed from a 0.8.4 machine with a hacked up
dispatcher to dump everything it was given from NM.
2011-05-02 22:54:28 -05:00
Dan Williams
3620353050 core: add --version and allow it and --help to be run without root 2011-04-28 16:55:35 -05:00
Dan Williams
a0fd14500e wifi: enable background scanning for WPA Enterprise
Enable the supplicant's optimized background scanning functionality
for WPA Enterprise setups so that roaming works correctly.  Otherwise
there are issues pingponging between APs and having an up-to-date
scan list for roaming, since NM only scans every 2 minutes.  The
supplicant can trigger optimized scans based on signal quality
thresholds and such and make these roaming decisions much better
than NM can.
2011-04-27 16:22:54 -05:00
Dan Williams
aeb7123368 ppp: make prototypes more valid
So they pass -Wstrict-prototypes which we aren't using but might
some day.
2011-04-26 13:49:05 -05:00
Dan Williams
67e092abcb core: better handling of rfkill for WiMAX and WiFi (bgo #629589) (rh #599002)
This commit changes rfkill state handling slightly in the following
ways:

- when checking whether a user toggle request can change radio state,
ignore states we can change in radio_enabled_for_rstate() as a result
of the toggle; this fixes WiMAX enable/disable because a softblock
can be changed by telling wimaxd to enable the radio.  As a side-effect
this also fixes handling of WiFi when altering the rfkill state as well.

- make WiFi user toggle requests change wifi killswitch state; this has
been long requested and on the TODO list for a while and it turns out
to be a lot easier to do these days.  This provides the expected
behavior when disabling wireless from user agent menus since there's
not an easy way to do this other than dropping to shell and running
rfkill.
2011-04-22 14:56:31 -05:00
Dan Williams
8cce42f2a5 core: add GetDeviceByIpIface method
Allow clients to get a device by its IP interface name instead
of having to get the device list and iterate through each one,
and read the interface name to get what they want.
2011-04-22 12:29:07 -05:00
Dan Williams
4cae0bb0fa settings: add a GetConnectionByUuid method
If the client knows the UUID, add a convenience function to get
the connection path directly, instead of having to iterate the
whole connection list and get each connection's details and then
check the UUID.
2011-04-22 12:29:07 -05:00
Dan Williams
bb8e9a0b18 api: add "Uuid" property to ActiveConnection interface
A convenience so that clients which might key certain operations off
which connections are active (checking work mail only when on VPN for
example) can more easily get which connections are active.  This would
allow those apps to store the UUID (which they would already be doing)
and not have to create a Connection proxy and then get the connection
properties just to retrieve the UUID of the connection.  Instead they
can now get it from GetAll of the ActiveConnection object, which they
would already be doing.
2011-04-22 12:29:07 -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
Dan Williams
2e33be3385 ppp: be more paranoid about cleaning PPP manager up
Make sure the dispose won't run twice for the same code and
make sure we never schedule a handler for monitor_cb() more
than once, though it's really hard to see how that could ever
happen anyway.

Another attempt to blindly fix lp:752143
2011-04-19 12:11:58 -05:00
Dan Williams
6d9c4c64b4 modem: ensure PPP manager is always cleaned up
While this should never happen while the PPP manager is alive, modems
can switch their IP method while alive, since the net port is sometimes
discovered after the serial ports have been.  This happens for some
devices that have separate drivers for the net and serial sides, like
ZTE Icera-based devices (cdc-ether and cdc-acm) and newer Sierra
devices (sierra and sierra-net).  Just be paranoid here and ensure
that the PPP manager gets cleaned up.

Partial attempt at fixing lp:752143
2011-04-19 12:01:24 -05:00
Dan Williams
ee3d29107f modem: remove dead code 2011-04-19 11:58:47 -05:00