Commit graph

74 commits

Author SHA1 Message Date
Dan Williams
0e6a5365d4 core: move secrets handling to NMSettingsConnection
It's the thing that owns the secrets anyway, and it simplifies things to
have the secrets handling there instead of half in NMActRequest and
half in NMManager.  It also means we can get rid of the ugly signals
that NMSettingsConnection had to emit to get agent's secrets, and
we can consolidate the requests for the persistent secrets that the
NMSettingsConnection owned into NMSettingsConnection itself instead
of also in NMAgentManager.

Since the NMActRequest and the NMVPNConnection classes already tracked
the underlying NMSettingsConnection representing the activation, its
trivial to just have them ask the NMSettingsConnection for secrets
instead of talking to the NMAgentManager.  Thus, only the
NMSettingsConnection now has to know about the agent manager, and it
presents a cleaner interface to other objects further up the chain,
instead of having bits of the secrets request splattered around the
activation request, the VPN connection, the NMManager, etc.
2011-01-27 10:41:02 -06:00
Dan Williams
4427774d57 agents: filter agents by UID for user-requested connections
When a user makes an explicit request for secrets via GetSecrets
or activates a device, don't ask other users' agents for secrets.
Restrict secrets request to agents owned by the user that made the
initial activate or GetSecrets request.

Automatic activations still request secrets from any available agent.
2011-01-26 18:36:08 -06:00
Dan Williams
68ab26143b core: use GetSecrets flags everywhere 2011-01-18 14:57:44 -06:00
Dan Williams
53766ae291 core: move generic connection complete function to a generic location
Out of NMDevice specific places to the utils code, so it can be used
more easily from everywhere.  There's nothing device-specific about
it anyway.
2011-01-13 13:28:52 -06:00
Dan Williams
f9ceafd4a1 Merge remote branch 'origin/master' into rm-userset 2011-01-12 15:46:37 -06:00
Dan Williams
215306f5a1 core: add AddAndActivate D-Bus method
Given connection details, complete the connection as well as possible
using the given specific object and device, add it to system
settings, and activate it all in one method.
2011-01-10 23:39:12 -06:00
Dan Williams
2bee736df1 modem: handle IP Method changes after modem has been created
Some modems don't know their IP method when they are created, but
will update it later.  Handle the changed signal for that.
2011-01-01 18:00:50 -06:00
Dan Williams
62a2c34e27 core: simplify secrets handling during activation
Instead of a bizare mechanism of signals back to the manager
object that used to be required because of the user/system settings
split, let each place that needs secrets request those secrets
itself.  This flattens the secrets request process a ton and
the code flow significantly.

Previously the get secrets flow was something like this:

nm_act_request_get_secrets ()
    nm_secrets_provider_interface_get_secrets ()
        emits manager-get-secrets signal
            provider_get_secerts ()
                system_get_secrets ()
                    system_get_secrets_idle_cb ()
                        nm_sysconfig_connection_get_secrets ()
                            system_get_secrets_reply_cb ()
                                nm_secrets_provider_interface_get_secrets_result ()
                                    signal failure or success

now instead we do something like this:

nm_agent_manager_get_secrets ()
    nm_agent_manager_get_secrets ()
        request_start_secrets ()
            nm_sysconfig_connection_get_secrets ()
                return failure or success to callback
2010-12-13 21:14:23 -06:00
Dan Williams
0a8f7aeb56 core: use #defines for NMDBusManager signal names
Helps catch typos at compile time instead of runtime.
2010-12-10 11:36:55 -06:00
Pablo Castellano
ce5c0d5ac6 build: enable AM_SILENT_RULES (bgo #625263) 2010-08-03 12:58:46 -07:00
Dan Williams
1c5236029c core: pass ifindex and address family when flushing routes
Use the interfaces kernel index when we can to avoid unecessary
iface->index lookups; and let callers figure out which address
family they really want to flush.
2010-05-04 20:23:09 -07:00
Dan Williams
a00a6e5d87 logging: move logging into its own subdir
Some stuff we build (the DHCP manager) gets built independently
so that we can use it for unit tests.  For that, we need to build
the logging bits separately too, since the independent DHCP
library can't use them if they are embedded in NM.
2010-04-06 17:39:57 -07:00
Dan Williams
b7288577fe logging: update modem-manager logging 2010-04-06 16:41:12 -07:00
Dan Williams
a2bcb79918 gsm: send new allowed mode and roaming control properties on connect 2010-03-16 23:53:31 -07:00
Dan Williams
308e9110ae modem: log disconnect errors 2010-03-10 11:25:14 -08:00
Dan Williams
9e627d1bce trivial: rename some CamelCase source files to not-camel-case 2010-03-02 15:06:14 -08:00
Dan Williams
7e7278fbd5 Merge remote branch 'origin/master' into btdun 2010-02-11 22:41:02 -08:00
Dan Williams
b4d0114ff6 gsm: split password and PIN try counters
To ensure that getting one wrong doesn't force a request for another.
2010-02-11 11:28:59 -08:00
Dan Williams
096f87e160 modem: ignore Enabled property changes while activating
Due to various ordering issues in ModemManager, when the Enable()
call fails because a PIN is required, MM will disable the modem
and *then* complete the dbus call.  That means that NM gets the
Enable property change before the Enable() call completes, and NM
would then transition the device to DISCONNECTED.  What we
really want to do is get the response from MM and then figure out
whether to fail activation or get secrets, not go to DISCONNECTED.

To fix this, ignore Enabled property changes to FALSE while
activating so we can handle it ourselves.  There are still a few
fixes left in nm-applet to make the secrets request for PINs work
on-the-fly, but saved in the connection works fine.
2010-02-09 23:50:26 -08:00
Dan Williams
21242568a6 gsm: handle PIN requests during modem enable too (bgo #609197)
Fix a regression after f61af8e139 where
a PIN request while enabling the modem wouldn't properly make NM
request secrets from the settings service.
2010-02-08 13:16:14 -08:00
Dan Williams
0a5a0146f8 bluetooth: finish DUN implementation 2010-01-28 11:21:53 -08:00
Dan Williams
4e5539c895 Merge commit 'origin/master' into btdun 2010-01-27 17:21:06 -08:00
Dan Williams
6400f5cb77 misc: license fixups
All libs are LGPL, all binaries are GPL.
2010-01-21 15:11:50 -08:00
Dan Williams
a0984585af modem: ensure deactivation on disable only happens on disable 2009-12-23 02:44:21 -08:00
Dan Williams
212220f0b4 Merge commit 'origin/master' into btdun 2009-12-23 01:46:59 -08:00
Dan Williams
ac38d65d6d modem: fix activation after 1379af271138202d406de585cbdcd491ac11ed01
Got the return semantics of dbus_g_proxy_end_call() wrong...
2009-12-23 01:30:55 -08:00
Dan Williams
154a41dec9 modem: ensure device is deactivated if the modem is disabled underneath NM 2009-12-23 01:30:54 -08:00
Dan Williams
f61af8e139 modem: enable modem before connecting if required 2009-12-23 01:30:54 -08:00
Dan Williams
a0f732c8cb modem: proxy the ModemManager Enabled property 2009-12-23 01:30:54 -08:00
Dan Williams
7b10ec29a2 modem: fix enable/disable/disconnect flow
NM shouldn't really be calling Enable(False) except in response to
direct user requests to turn off WWAN, much like rfkill, since
Enable(False) /is/ essentially rfkill for 3G.  Instead, we should
be powering up the modem before trying to use it, and only
disconnecting after we're done.  Let the user do enable/disable
when they want to.

This also fixes issues with other devices like GPS potentially
using the modem-manager at the same time as NM and ensures that NM
won't punch the modem in the face while GPS is using it.
2009-12-23 01:30:54 -08:00
Dan Williams
0278884c6b Merge commit 'origin/master' into btdun 2009-12-01 11:44:29 -08:00
Dan Williams
830bded555 ppp: increase PPPoE pppd timeout to 30 seconds
Mostly to help debug stuff like (rh #528314) where it's hanging somewhere
in rp-pppoe while trying to connect to the access concentrator.
2009-11-23 00:08:35 -08:00
Dan Williams
7d23d8ccdb Merge commit 'origin/master' into btdun 2009-11-06 13:34:52 -08:00
Alexander Sack
82011dff04 ppp: allow update of ppp secrets in all ACTIVATING stages (lp:432205)
Previously, ppp code would flip device state to _NEED_AUTH before
asking for secrets update; this is not the case anymore after landing
of f28a0df4a66e8f6c98327691c9c90df0604bbd28; hence, we need to
allow update of secrets in all ACTIVATING stages.

This patch updates this behaviour for all device classes with ppp
support.
2009-10-30 19:58:30 +01:00
Dan Williams
294a5e3153 modem: substitute known-good nameservers if PPP doesn't return any (lp:434477)
Modem firmware PPP implementations suck.
2009-10-23 16:49:38 -07:00
Dan Williams
093b86a8c7 Merge commit 'origin/master' into btdun 2009-10-07 12:21:20 -07:00
Dan Williams
00f945e54e gsm: correct GSM band implementation and settings
NM didn't pass it to MM anyway, so it was mainly unused, but the band settings
were still wrong.  Fix that (and still preserve ABI) by adding a new property
for allowed bands that can actually hold all the bands instead of limiting
to 16-bits.  Clean up some of the deprecation stuff at the same time to make
it clearer what's deprecated and what to do about it.
2009-10-07 12:18:57 -07:00
Dan Williams
bc81b998a9 build: fix generation of CDMA & GSM dbus interface data 2009-10-05 00:51:29 -07:00
Dan Williams
55bb7a85fd modem: re-implement GSM device on top of generic modem code
Serial interface D-Bus info has to be somewhere neutral.

Fix a CDMA secrets bug.
2009-10-05 00:42:53 -07:00
Dan Williams
9fb584242c modem: kill active connections on shutdown 2009-10-05 00:13:01 -07:00
Dan Williams
ac739e3311 manager: fix up composite modem device detection and suppression
Some modems have their ethernet	interface show up only on connect,
and we want NM to ignore the ethernet interface as a top-level
device.
2009-10-04 23:59:20 -07:00
Dan Williams
66fbf31a19 modem: fix stage3 IP config kickoff 2009-10-04 23:57:51 -07:00
Dan Williams
e4e9d40998 modem: re-implement CDMA device on top of generic modem code 2009-10-04 23:35:20 -07:00
Dan Williams
c5cf3b1d9b modem: generalize GSM and CDMA modem classes
So that Bluetooth can use them.  They used to be NMDevice subclasses, but
we need them to be generic objects that both bluetooth and the normal
modem stack can use.  All because GObject can't do multiple inheritance,
but that would probably be even messier.

So now that we have generic modem objects, we can create the actual
NMDevice subclasses that will wrap them for non-BT modems, and then
also have NMDeviceBt wrap them too for DUN.
2009-10-04 21:41:49 -07:00
Dan Williams
e4ed9764b5 libnm-util: deprecate GSM PUK property
Unused anyway, and PUK is dangerous enough that it should be handled
by the client explicitly and not by NM.
2009-09-18 17:08:30 -07:00
Dan Williams
393bdd3737 core: generalize unavailable -> disconnected delayed transition
Instead of doing this in every device subclass, do it in the NMDevice
superclass.  nm_device_can_activate() already did the same logic that
each of the subclass device_state_changed() handlers were doing to
figure out whether they could do the transition from unavailable
to disconnected, so just use that in NMDevice and kill lots of code.
2009-09-14 13:24:29 -07:00
Dan Williams
f28a0df4a6 ppp: ignore certain pppd status changes
We don't actually care when pppd goes into the 'network' phase or the
'authenticate' phase, because we're looking for the IP4 configuration
to come back, and the device is already in the IP_CONFIG state.
Handling those phases would cause the device's state to jump around
between NEED_AUTH and IP_CONFIG when we were already past that phase.

Specifically, when the PPP link went down, the device would jump from
FAILED to IP_CONFIG because pppd entered the 'network' phase when
cleaning up the link.  The device would also jump from IP_CONFIG to
NEED_AUTH during the connection process when we already had secrets.
2009-09-09 07:44:21 -07:00
Dan Williams
bee58e359d modem: disable modem instead of just disconnecting
Until later when we'll actually do stuff like probing signal
strength and such while disconnected.
2009-09-04 17:42:09 -05:00
Alexander Sack
2e912158af core: ensure that modem-manager claimed data devices are ignored
add function nm_modem_manager_has_modem_for_iface to modem-manager api
and ignore device additions in nm-manager if the iface is claimed by
modem-manager; also forget about already managed devices once they get
claimed by modem-manager.
2009-09-04 16:55:48 +02:00
Dan Williams
537c2f1f86 build: always link locally-built libraries first (bgo #580131) 2009-08-20 12:31:17 -05:00