Commit graph

74 commits

Author SHA1 Message Date
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
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
Mathieu Trudel-Lapierre
3951942fa1 wired: fix uninitialized variable 2010-11-19 16:17:40 -06:00
Dan Williams
f3a1366b55 supplicant: collapse supplicant interface states
We only really need one state for the supplicant interface which
simplifies handling in the Wifi and Wired device classes quite a
bit.  It also simplifies the supplicant interface class too.

One behavioral change in the device classes is not running the
supplicant interface state changes from an idle; we'll have to
see if that causes problems.  ISTR long ago that processing the
state change signals directly caused some issues, but we've
significantly reworked somethings since then so we may be able
to get away with this now.
2010-10-06 11:05:21 -05:00
Jiří Klimeš
358261ccd9 core: read initial MAC address on startup; reset to this MAC when disconnecting
Previously, NM reset permanent MAC to an interface while disconnecting. That
basically ignored MAC addresses set before NM started managing the interface.
Now, the initial MAC address is remembered and set back to the interface when
disconnecting.
2010-09-27 09:53:51 +02:00
Dan Williams
11ed2f737f core: don't select s390 subchannel-locked connections on non-s390 devices
The autoactivation code wasn't excluding subchannel-locked connections
when matching for devices that don't have subchannels.  This only
produced a warning message though as the connection activation would
be failed by the check_connection_compatible hook.
2010-08-10 00:31:46 -05:00
Dan Williams
74a221ab36 core: respect s390 subchannels for auto-activation and config matching 2010-06-26 00:15:11 -07:00
Dan Williams
7975295442 core: trivial subchannels logging cleanup 2010-06-25 21:46:57 -07:00
Dan Williams
d08b7895fb core: build composite subchannels for unmanaged spec matching 2010-06-25 21:44:01 -07:00
Dan Williams
ac9d2804bd Merge remote branch 'origin/master' into zvm 2010-06-25 19:57:30 -07:00
Dan Williams
3f089fe41d core: grab s390 subchannels when available 2010-06-25 19:49:39 -07:00
Dan Williams
157959a1c5 core: fall back to current MAC address if permanent one is invalid
Not all drivers will return errors when even when they don't provide
the GPERMADDR ethtool call; sometimes you'll get 00:00:00:00:00:00
which is clearly not right.  In this case, fall back to the current
HW address just like if the ethtool GPERMADDR call failed.
2010-06-24 15:18:53 -07:00
Dan Williams
88eb6ced3f core: consolidate and clean up MAC cloning code
- Just use a byte array to old MAC addresses so we don't need to
  use .ether_addr_octet everywhere
- Consolidate setting the current MAC address into one location
- Make sure that if the GPERMADDR call fails we use the current MAC
  (this wasn't done for wired devices)
- Make log messages consistent
2010-06-24 15:14:53 -07:00
Dan Williams
3beea85a0b core: s/obtain/update for permanant HW address 2010-06-24 14:21:49 -07:00
Jiří Klimeš
1b49f941a6 core: MAC address spoofing/cloning (rh #447827) (bgo #553771)
This commit implements MAC cloning feature in NetworkManager. To support that,
'PermHwAddress' property is added into *.Device.Wired and *.Device.Wireless
interfaces. The permanent MAC address is obtained when creating the device, and
is used for 'locking' connections to the device. If a cloned MAC is specified
in connection to be activated, the MAC is set to the interface in stage1. While
disconecting, the permanent MAC is set back to the interface.
2010-06-22 14:21:25 +02:00
Dan Williams
0b41797b49 s390: replace 'zvm' with s390
ZVM isn't the right terminology here.  s390 is.
2010-06-17 21:24:14 -07:00
Dan Williams
a5d8872c3e Merge remote branch 'origin/master' into zvm 2010-06-17 21:14:09 -07:00
Dan Williams
763f2f1d01 core: expose device's IP interface when activated
Lets apps find out what the actual kernel interface name is for the
device so they can do fun stuff with it.
2010-06-10 10:16:39 -07:00
Dan Williams
5f03706a6b ethernet: handle zvm-subchannels unmanaged spec (rh #591533) 2010-05-26 16:28:51 -07:00
Dan Williams
34793c1fb1 core: use ifindex instead of interface name in a lot of places
Where we can do so, let's use ifindex since that's actually unique
and doesn't change when the interface name changes.  We already use
ifindex in a bunch of places, and netlink *only* uses ifindex, so
this will make it easier later when we move over to ifindexes fully.
2010-04-21 14:58:25 -07:00
Dan Williams
87c6e5db76 netlink: merge nm-netlink.c into nm-netlink-monitor.c 2010-04-20 17:22:58 -07:00
Dan Williams
f722b180e2 trivial: netlink header cleanup 2010-04-20 16:55:13 -07:00
Dan Williams
ea05e90016 ethernet: fix debug log message 2010-04-08 15:00:32 -07:00
Dan Williams
d0f2a50680 core: log kernel interface indexes 2010-04-08 09:30:05 -07:00
Dan Williams
8364ce7bac wired: debug logging for carrier detect support detection 2010-04-08 09:22:52 -07:00
Dan Williams
5eeef57581 wired: update logging 2010-04-07 13:24:25 -07:00
Dan Williams
9e627d1bce trivial: rename some CamelCase source files to not-camel-case 2010-03-02 15:06:14 -08:00
Dan Williams
1806235049 dhcp: convert dhcp backends to classes 2010-01-12 22:09:28 -08:00
Dan Williams
d997785db3 dhcp6: genericize DHCP client tracking
Since the same interface could be used for both	DHCPv4 and DHCPv6 we
can't just use 'iface' for tracking DHCP client lease changes.  Instead
use a generated client ID, and track DHCP events based on the client's
PID instead of interface name.
2010-01-08 17:16:05 -08:00
Dan Williams
d6799281e1 ethernet: remove unused variable 2009-12-23 11:09:22 -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
ea78b0af0e core: don't leak 'ifindex' into PropertiesChanged signal
It's not part of the D-Bus spec; so it shouldn't be exposed.
2009-11-03 17:40:36 -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
Frej Soya
e3ae3efc09 wired: fix build_supplicant_config for wired - bgo:594038 lp:422597 2009-10-05 11:22:20 +02:00
Dan Williams
963d055abf wired: defer carrier-off events while connected by a few seconds
Don't immediately tear down an active wired connection when the carrier
flips to off, but wait a few seconds for it to come back before breaking
the user's network.
2009-09-28 14:12:09 -07:00
Dan Williams
a2c1256215 wired: link_timeout_id -> supplicant_timeout_id 2009-09-28 12:57:18 -07:00
Dan Williams
0bbf8c5307 ethernet: make initial carrier check synchronous; require carrier for connection takeover (lp#417719) 2009-09-28 11:09:31 -07:00
Dan Williams
7a2e2cfda3 core: rename nm_device_can_activate -> nm_device_is_available
Becuase when the device is in >= DISCONNECTED state, that already
means it can activate if a connection is available.
2009-09-14 13:33:06 -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
0be66daa9a wired: get rid of nm_device_ethernet_get_carrier
Only used internally; just use priv->carrier instead
2009-09-14 12:54:09 -07:00
Dan Williams
ab167b1994 ethernet: clean up netlink monitoring code
Keep a reference to the netlink monitor for as long as we have
signals attached to it.  Also don't bother looking up the ifindex
in the carrier state signal handlers since we already have it
lying around in priv.
2009-09-14 12:15:15 -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
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
4802094985 Merge commit 'origin/master' into iscsi 2009-08-05 15:46:11 -04:00
Dan Williams
f2eb3dea65 core: base infrastructure for connection assumption
Figure out what connections can be assumed when a device is added,
and on shutdown don't blow away connections that can be assumed on
NM restart.
2009-08-03 17:15:03 -04: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