Commit graph

48 commits

Author SHA1 Message Date
Dan Williams
6b9511f6e9 core: treat missing IPv6 setting as AUTO
Like IPv4, if the connection contains no IPv6 setting, perform
IPv6 addressing.  Since may-fail defaults to TRUE for IPv6, failure
should have no consequence.
2012-03-16 09:43:16 -05:00
Dan Williams
0eb09bc99b core: don't assert in nm_device_get_connection()
This function used to be used only from activation paths, so it
was fine to assert there because we always expected that there
would be an activation request.  These days we'd like to use it
in more places, so just return NULL if there's no connection.
2012-03-01 17:40:17 -06:00
Dan Williams
5ee7841475 core: extend nm_device_hwaddr_matches() to match specific addresses
We'll want to eventually match (for VLAN) a given hardware address
that's not the device's hardware address.  Only the device itself
knows which NMSetting should contain it's hardware address (ie
the 'wired' setting for NMDeviceEthernet, 'infiniband' for
NMDeviceInfiniband, etc) and VLANs take their hardware address
from the parent interface.  So eventually we'll have VLAN
interfaces use these new arguments to ask their parent interface
to match the VLAN hardware address in a connection, since the
VLAN doesn't know (or need to know) what kind of interface it
really is underneath.
2012-03-01 17:40:17 -06:00
Dan Williams
13c8d2c51e core: add NMDevice hwaddr_matches() class method
Match the device's hardware address with a connection.
2012-02-16 15:20:50 -06:00
Dan Winship
839eab5564 Use glib-mkenums to generate enum types
Rather than generating enum classes by hand (and complaining in each
file that "this should really be standard"), use glib-mkenums.

Unfortunately, we need a very new version of glib-mkenums in order to
deal with NM's naming conventions and to fix a few other bugs, so just
import that into the source tree temporarily.

Also, to simplify the use of glib-mkenums, import Makefile.glib from
https://bugzilla.gnome.org/654395.

To avoid having to run glib-mkenums for every subdirectory of src/,
add a new "generated" directory, and put the generated enums files
there.

Finally, use Makefile.glib for marshallers too, and generate separate
ones for libnm-glib and NetworkManager.
2012-02-15 11:42:15 -05:00
Thomas Graf
18088e0d07 trivial: add nm_device_get_connection()
Shortcut to access the connection linked to the activation
request of a device.

The patch only replaces usage with nm_device_get_connection()
if the existing code assumes that an activation request must
be available.

Signed-off-by: Thomas Graf <tgraf@redhat.com>
2011-12-06 16:10:23 -06:00
Thomas Graf
86d5a40677 libnm-util: add nm_connection_get_setting_serial()
Signed-off-by: Thomas Graf <tgraf@redhat.com>
2011-12-06 16:08:39 -06:00
Thomas Graf
5b7503e95e core: use nm_connection_get_setting_<type>() whenever possible
Leads to shorter, easier to read code and improves type casting safety.

Signed-off-by: Thomas Graf <tgraf@redhat.com>
2011-12-06 16:06:43 -06:00
Dan Williams
da8e21a7d7 core: kill NMDeviceInterface 2011-12-02 13:30:07 -06:00
Dan Williams
6d567e71e6 core: move NMDeviceInterface properties and methods to nm-device.c 2011-12-02 13:30:07 -06:00
Dan Williams
f8852bf4a4 core: kill nm_device_interface_get_state() 2011-12-02 13:30:06 -06:00
Dan Williams
3927ccd1c0 core: decouple initial IP configuration states from device state
Initial IP configuration can happen during ACTIVATED state if both
v4 and v6 are enabled, but one takes longer than the other.  Thus
various checks throughout the code for IP_CONFIG were incorrect
since they depended on IP configuration only happening during the
IP_CONFIG state.  Fix that by using a separate state for IP config
and using that state for various checks instead of the overall
device state.
2011-11-09 21:36:52 -06:00
Dan Williams
bdd556fe4d core: kill stage4 (IP Config Get)
It was somewhat pointless since the IP config is always known when
stage4 gets scheduled, so why not just pass the config to stage5
immediately?  Also helps consolidate the v4/v6 failure handling
logic and makes the operational flow clearer where both v4 and
v6 are active and proceeding in parallel.
2011-11-09 21:36:52 -06:00
Dan Williams
23943e7ce2 core: handle new device states
The device states aren't used yet, but handle them anyway.
2011-03-17 13:42:22 -05:00
Kjartan Maraas
6d0d302916 build: do the right thing with config.h (bgo #644664)
1) it shouldn't be included in headers
2) it should be the first thing included in source files
3) it's needed for getting translation right
2011-03-14 01:01:22 -05:00
Dan Williams
a4ab74d903 core: don't autocomplete non-IPv6-capable connections with IPv6 enabled
Mobile broadband and PPPoE don't yet support IPv6, so don't enable
IPv6 on these connections when completing them.
2011-02-25 11:58:16 -06:00
Dan Williams
125540471b core: don't require serial and PPP settings for mobile broadband
If they are there, use them.  If not, make them up on the fly.
2011-02-25 11:24:20 -06:00
Dan Williams
3b61adec74 core: consolidate deactivation methods
deactivate_quickly is misnamed these days; it was originally used
for quickly tearing down a device for sleep and such.  But these
days it's used for the bulk of device deactivation.  Only the wifi
class used the actual deactivate method.  So combine the two and
make device implementations less complicated.
2011-02-24 11:27:42 -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
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
Dan Williams
266e389cd3 bt: more debug logging 2010-05-05 13:09:12 -07:00
Dan Williams
57d9cc3c4a bt: increase DUN modem find timeout a bit 2010-05-05 12:53:20 -07:00
Dan Williams
e2f848c2d9 bt: ensure connect timeout is canceled on success (rh #586961) 2010-05-05 12:52:45 -07:00
Dan Williams
8aef7ef411 core: allow selective failure of IP configuration (rh #567978)
As long as at least one IP config method completes, and as long as
methods that the user required to complete do complete, allow the
connection to complete.
2010-05-03 01:19:54 -07:00
Dan Williams
b2f0c0fc65 bt: update logging 2010-04-07 11:07:19 -07:00
Dan Williams
b95c390015 bluetooth: add timeout for bluetooth connection request 2010-03-23 23:07:17 -07:00
Dan Williams
35e5656e65 bluetooth: fix race condition causing NAP connections to fail (rh #572340)
The race would start DHCP before we had the BNEP interface from
bluez, causing the wrong interface name to be used.
2010-03-23 22:51:57 -07:00
Dan Williams
4b8709629e bluetooth: NEED_AUTH state is valid here
Since during the modem preparation we might need secrets for
unlocking the device or for GSM/CDMA network password.
2010-02-19 01:44:17 -08:00
Dan Williams
0a5a0146f8 bluetooth: finish DUN implementation 2010-01-28 11:21:53 -08:00
Dan Williams
75898f075b bluetooth: minor cleanup for device connect 2010-01-27 17:28:35 -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
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
c2fb1f850a gsm/bt: fix merge of user-defined IPv4 settings 2009-08-17 19:48:42 -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
c72bf13456 bluetooth: implement check_connection_compatible for BT devices 2009-06-18 10:44:59 -04:00
Dan Williams
5e8c86c977 bluetooth: connect/disconnect when device's 'Connected' property changes 2009-05-20 12:05:07 -04:00
Dan Williams
9cbc3150e7 bluetooth: fix usage of dbus_g_proxy_new_for_name()
Probably caused by me not Bastien when merging
7ab907c6bc
2009-05-20 12:03:51 -04:00
Dan Williams
41b6e4f513 bluetooth: resync bluetooth devices on connection events 2009-05-20 12:02:18 -04:00
Bastien Nocera
b2305fcb43 bluetooth: fixes for NMDeviceBt
- Use NM_BT_CAPABILITY_NONE instead of 0 when appropriate
- Don't assert on priv->bt_type not being set in
  real_deactivate_quickly(), as it might be called with no
  connections activated
- Fix cut'n'paste typo that made setting the device capabilities
  assert
2009-05-19 15:17:04 -04:00
Bastien Nocera
7ab907c6bc bluetooth: remove unused device proxy
Only really use the serial/network ones for now, so drop the device proxy
to simplify stuff.
2009-05-18 19:20:46 -04:00
Bastien Nocera
c74cf24f87 bluetooth: misc fixes 2009-05-15 09:31:55 -04:00
Bastien Nocera
cfa1eb157e bluetooth: ask Bluez to connect/disconnect from remote device when appropriate
Cleanups and leak fixes by dcbw.
2009-05-14 19:17:56 -04:00
Dan Williams
3af7068a87 bluetooth: fix confusion about NAP and PAN
NMSettingBluetooth represents the local connection, and thus should
use "PANU" not NAP, because the local adapter will be in PANU mode.
For now, NAP is only relevant when talking about the *remote* device
in NMDeviceBt or NMBluezDevice.
2009-05-14 13:00:22 -04:00
Dan Williams
7d88a87214 bluetooth: NMDeviceBt and associated fixes 2009-05-14 11:01:56 -04:00