mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-03-23 22:30:35 +01:00
modem-manager: consolidate capabilities loading
Make capabilities loading a method in the NMModem class, and let subclasses implement it.
This commit is contained in:
parent
e071cb962e
commit
0477becfae
7 changed files with 40 additions and 23 deletions
|
|
@ -337,22 +337,18 @@ nm_device_modem_new (NMModem *modem, const char *driver)
|
|||
{
|
||||
NMDeviceModemCapabilities caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
|
||||
NMDeviceModemCapabilities current_caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
|
||||
const gchar *type_desc = NULL;
|
||||
const gchar *ip_iface = NULL;
|
||||
|
||||
g_return_val_if_fail (NM_IS_MODEM (modem), NULL);
|
||||
g_return_val_if_fail (driver != NULL, NULL);
|
||||
|
||||
if (NM_IS_MODEM_OLD (modem)) {
|
||||
nm_modem_old_get_capabilities (NM_MODEM_OLD (modem), &caps, ¤t_caps);
|
||||
type_desc = "Broadband";
|
||||
ip_iface = nm_modem_get_data_port (modem);
|
||||
}
|
||||
#if WITH_MODEM_MANAGER_1
|
||||
else if (NM_IS_MODEM_BROADBAND (modem)) {
|
||||
nm_modem_broadband_get_capabilities (NM_MODEM_BROADBAND (modem), &caps, ¤t_caps);
|
||||
type_desc = "Broadband";
|
||||
/* data port not yet known in broadband modems */
|
||||
/* In ModemManager1 modems, data port is not yet known */
|
||||
ip_iface = NULL;
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
|
|
@ -360,12 +356,15 @@ nm_device_modem_new (NMModem *modem, const char *driver)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Load capabilities */
|
||||
nm_modem_get_capabilities (modem, &caps, ¤t_caps);
|
||||
|
||||
return (NMDevice *) g_object_new (NM_TYPE_DEVICE_MODEM,
|
||||
NM_DEVICE_UDI, nm_modem_get_path (modem),
|
||||
NM_DEVICE_IFACE, nm_modem_get_uid (modem),
|
||||
NM_DEVICE_IP_IFACE, ip_iface,
|
||||
NM_DEVICE_DRIVER, driver,
|
||||
NM_DEVICE_TYPE_DESC, type_desc,
|
||||
NM_DEVICE_TYPE_DESC, "Broadband",
|
||||
NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_MODEM,
|
||||
NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WWAN,
|
||||
NM_DEVICE_MODEM_MODEM, modem,
|
||||
|
|
|
|||
|
|
@ -100,11 +100,13 @@ translate_mm_error (GError *error)
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
void
|
||||
nm_modem_broadband_get_capabilities (NMModemBroadband *self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps)
|
||||
static void
|
||||
get_capabilities (NMModem *_self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps)
|
||||
{
|
||||
NMModemBroadband *self = NM_MODEM_BROADBAND (_self);
|
||||
|
||||
*modem_caps = (NMDeviceModemCapabilities)mm_modem_get_modem_capabilities (self->priv->modem_iface);
|
||||
*current_caps = (NMDeviceModemCapabilities)mm_modem_get_current_capabilities (self->priv->modem_iface);
|
||||
}
|
||||
|
|
@ -945,6 +947,7 @@ nm_modem_broadband_class_init (NMModemBroadbandClass *klass)
|
|||
object_class->get_property = get_property;
|
||||
object_class->set_property = set_property;
|
||||
|
||||
modem_class->get_capabilities = get_capabilities;
|
||||
modem_class->static_stage3_ip4_config_start = static_stage3_ip4_config_start;
|
||||
modem_class->disconnect = disconnect;
|
||||
modem_class->deactivate = deactivate;
|
||||
|
|
|
|||
|
|
@ -53,10 +53,6 @@ GType nm_modem_broadband_get_type (void);
|
|||
|
||||
NMModem *nm_modem_broadband_new (GObject *object);
|
||||
|
||||
void nm_modem_broadband_get_capabilities (NMModemBroadband *self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* NM_MODEM_BROADBAND_H */
|
||||
|
|
|
|||
|
|
@ -958,11 +958,13 @@ get_user_pass (NMModem *modem,
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
void
|
||||
nm_modem_old_get_capabilities (NMModemOld *self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps)
|
||||
static void
|
||||
get_capabilities (NMModem *_self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps)
|
||||
{
|
||||
NMModemOld *self = NM_MODEM_OLD (_self);
|
||||
|
||||
*current_caps = *modem_caps = NM_MODEM_OLD_GET_PRIVATE (self)->caps;
|
||||
}
|
||||
|
||||
|
|
@ -1138,6 +1140,7 @@ nm_modem_old_class_init (NMModemOldClass *klass)
|
|||
object_class->constructor = constructor;
|
||||
object_class->dispose = dispose;
|
||||
|
||||
modem_class->get_capabilities = get_capabilities;
|
||||
modem_class->get_user_pass = get_user_pass;
|
||||
modem_class->complete_connection = complete_connection;
|
||||
modem_class->check_connection_compatible = check_connection_compatible;
|
||||
|
|
|
|||
|
|
@ -48,10 +48,6 @@ GType nm_modem_old_get_type (void);
|
|||
|
||||
NMModem *nm_modem_old_new (const char *path, GHashTable *properties, GError **error);
|
||||
|
||||
void nm_modem_old_get_capabilities (NMModemOld *self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps);
|
||||
|
||||
/* Protected */
|
||||
DBusGProxy *nm_modem_old_get_proxy (NMModemOld *modem, const gchar *interface);
|
||||
|
||||
|
|
|
|||
|
|
@ -666,6 +666,18 @@ nm_modem_get_data_port (NMModem *self)
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
void
|
||||
nm_modem_get_capabilities (NMModem *self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps)
|
||||
{
|
||||
g_return_if_fail (NM_IS_MODEM (self));
|
||||
|
||||
NM_MODEM_GET_CLASS (self)->get_capabilities (self, modem_caps, current_caps);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
nm_modem_init (NMModem *self)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -76,6 +76,10 @@ typedef struct {
|
|||
typedef struct {
|
||||
GObjectClass parent;
|
||||
|
||||
void (*get_capabilities) (NMModem *self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps);
|
||||
|
||||
gboolean (*get_user_pass) (NMModem *modem,
|
||||
NMConnection *connection,
|
||||
const char **user,
|
||||
|
|
@ -125,6 +129,10 @@ const char *nm_modem_get_control_port (NMModem *modem);
|
|||
const char *nm_modem_get_data_port (NMModem *modem);
|
||||
const char *nm_modem_get_driver (NMModem *modem);
|
||||
|
||||
void nm_modem_get_capabilities (NMModem *self,
|
||||
NMDeviceModemCapabilities *modem_caps,
|
||||
NMDeviceModemCapabilities *current_caps);
|
||||
|
||||
gboolean nm_modem_check_connection_compatible (NMModem *self,
|
||||
NMConnection *connection,
|
||||
GError **error);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue