diff --git a/ChangeLog b/ChangeLog index b7dc631ae..f28aa3dc6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-09-09 Dan Williams + + * src/nm-device.h + src/nm-device.c + - (nm_device_get_best_connection): new function; get best connection + for the device at that time + 2007-09-09 Dan Williams * src/nm-device-interface.h diff --git a/src/nm-device.c b/src/nm-device.c index d517bb1ed..6ee1be5a7 100644 --- a/src/nm-device.c +++ b/src/nm-device.c @@ -380,6 +380,24 @@ nm_device_set_active_link (NMDevice *self, } +NMConnection * +nm_device_get_best_connection (NMDevice *dev) +{ + guint32 caps; + + g_return_val_if_fail (NM_IS_DEVICE (dev), NULL); + + caps = nm_device_get_capabilities (dev); + /* Don't use devices that SUCK */ + if (!(caps & NM_DEVICE_CAP_NM_SUPPORTED)) + return NULL; + + if (!NM_DEVICE_GET_CLASS (dev)->get_best_connection) + return NULL; + + return NM_DEVICE_GET_CLASS (dev)->get_best_connection (dev); +} + /* * nm_device_activate_stage1_device_prepare * diff --git a/src/nm-device.h b/src/nm-device.h index f0a960ea1..c56b2d66a 100644 --- a/src/nm-device.h +++ b/src/nm-device.h @@ -90,6 +90,8 @@ struct _NMDeviceClass guint32 (* get_type_capabilities) (NMDevice *self); guint32 (* get_generic_capabilities) (NMDevice *self); + NMConnection * (* get_best_connection) (NMDevice *self); + gboolean (* check_connection) (NMDevice *self, NMConnection *connection); NMActStageReturn (* act_stage1_prepare) (NMDevice *self); @@ -142,6 +144,7 @@ void * nm_device_get_system_config_data (NMDevice *dev); NMActRequest * nm_device_get_act_request (NMDevice *dev); +NMConnection * nm_device_get_best_connection (NMDevice *dev); void nm_device_activate_schedule_stage1_device_prepare (NMDevice *device); void nm_device_activate_schedule_stage2_device_config (NMDevice *device);