Commit graph

43 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
Dan Williams
a8ca7f537d ppp: work around PPP bug that returns bogus nameservers
Work around a PPP bug (#1732) which causes many mobile broadband
providers to return 10.11.12.13 and 10.11.12.14 for the DNS servers.
Apparently fixed in ppp-2.4.5 but we've had some reports that this is
not the case.

http://git.ozlabs.org/?p=ppp.git;a=commitdiff_plain;h=2e09ef6886bbf00bc5a9a641110f801e372ffde6
http://git.ozlabs.org/?p=ppp.git;a=commitdiff_plain;h=f8191bf07df374f119a07910a79217c7618f113e
2009-08-18 12:28:56 -05:00
Dan Williams
b62702d337 modem: don't send PropertyChanged signals for private properties 2009-08-17 19:55:01 -05:00
Dan Williams
c2fb1f850a gsm/bt: fix merge of user-defined IPv4 settings 2009-08-17 19:48:42 -05:00
Dan Williams
3e221833da ppp: start PPP at activation stage3 instead of stage2
With the addition of IPv6, both v4 and v6 configuration are run in
parallel, and when both have finished, then activation can proceed.
Unfortunately, two of the 3 users of PPP (PPPoE and 3G) ran PPP at
stage2, and when the PPP IPv4 config was received, jumped directly
to activation stage4.  That caused the IPv6 code never to run, and
thus we hung at stage4 waiting for it to complete when nothing had
started it in the first place.

Instead, move PPP to stage3 so that
nm_device_activate_stage3_ip_config_start() can kick off both v4
and v6 IP code and we can successfully complete IP configuration
in all cases.  PPP previously being in stage2 was an artifact of
the more simplistic pre-IPv6 configuration code where it didn't
matter if you skipped stage3.
2009-08-17 15:35:02 -05:00
Dan Williams
377b116651 gsm: harmonize GSM network modes with ModemManager API 2009-08-17 14:43:37 -05:00
Dan Williams
a90491e8d8 gsm: reset secrets tries counter to avoid asking for secrets we don't need
The counter wasn't getting reset, so the second time the connection was
activated, secrets would be requested even though they weren't needed.
2009-08-17 14:39:22 -05:00
Dan Winship
fc8e609784 Initial IPv6 support (only handles "manual" and "ignore" currently) 2009-07-29 21:35:01 -04:00
Dan Williams
b62ff36e33 core: get rid of nm_device_set_device_type() 2009-07-07 14:57:05 -04:00
Dan Williams
3cdb0f6c7a core: add a 'type-desc' property to NMDeviceInterface and use it
instead of littering the code with NM_IS_*.
2009-07-07 14:24:12 -04:00
Dan Williams
b1ccf86b87 modem: should be unmanaged by default
The NMManager object now handles correct managed/unmanaged settings for
devices.  Individual device types shouldn't be playing with it.
2009-06-18 14:18:42 -04:00
Dan Williams
c62701f65a modem: get and save modem master device
For later use identifying the actual physical modem device instead
of just one of the modem's ports.
2009-06-18 14:17:35 -04:00
Dan Williams
0e51037076 modem: implement check_connection_compatible for GSM and CDMA 2009-06-18 14:15:53 -04:00
Dan Williams
591a8843b0 modem: add a 'device' property to NMModem representing master modem device
i.e., the USB or PCI or whatever device that owns one or more modem ports
provided by that device.
2009-06-18 14:10:01 -04:00
Torgny Johansson
904e7f3908 gsm: match NM network modes with updated MM network modes 2009-06-16 09:36:51 -04:00
Dan Williams
c9067d8fed everything: use libgudev instead of HAL; merge NM and nm-system-settings
The only thing that doesn't work yet is the system-settings service's
"auto eth" connections for ethernet devices that don't have an existing
connection.  Might also have issues with unmanaged devices that can't
provide a MAC address until they are brought up, but we'll see.
2009-06-11 00:39:12 -04:00
Dan Williams
15e64d31ea modem: remove SECRETS_CALLER_HSO_GSM; ModemManager abstracts modems for us
Fixes a bug where if GSM secrets were required, the connection would fail
because they were requested with SECRETS_CALLER_HSO_GSM, but the function
to handle retrieved secrets only expected SECRETS_CALLER_GSM.
2009-05-20 12:30:09 -04:00
Dan Williams
b3932d21a7 modem: send network mode preference to MM when connecting 2009-04-09 07:37:53 -04:00
Tambet Ingo
b41f612c73 Don't spam the log if modem-manager is not installed. 2009-03-16 10:46:21 +02:00
Tambet Ingo
614d1c7712 Use the correct signature for DeviceAdded and DeviceRemoved MM signals. 2009-02-10 15:34:21 +02:00
Tambet Ingo
a772546212 Convert MM errors to NM state reasons. 2009-02-09 11:01:35 +02:00
Tambet Ingo
c4b10085c9 Use the existing dbus-glib macros. 2009-02-09 11:01:35 +02:00
Tambet Ingo
eaa93b0387 Remove HSO and MBM modem implementations and replace them with generic code. 2009-02-09 11:01:35 +02:00
Tambet Ingo
10784dd1b6 Use the 'Simple' modem interface. 2009-02-09 11:01:35 +02:00
Tambet Ingo
e4398a88c8 Use ModemManager. 2009-02-09 11:01:35 +02:00