diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-iface-modem.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index 5c1499d6..6acf8ee3 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -163,6 +163,36 @@ interface_initialization_step (InitializationContext *ctx) { switch (ctx->step) { case INITIALIZATION_STEP_FIRST: { + /* Load device if not done before */ + if (!mm_gdbus_modem_get_device (ctx->skeleton)) { + gchar *device; + + g_object_get (ctx->self, + MM_BASE_MODEM_DEVICE, &device, + NULL); + mm_gdbus_modem_set_device (ctx->skeleton, device); + g_free (device); + } + /* Load driver if not done before */ + if (!mm_gdbus_modem_get_driver (ctx->skeleton)) { + gchar *driver; + + g_object_get (ctx->self, + MM_BASE_MODEM_DRIVER, &driver, + NULL); + mm_gdbus_modem_set_driver (ctx->skeleton, driver); + g_free (driver); + } + /* Load plugin if not done before */ + if (!mm_gdbus_modem_get_plugin (ctx->skeleton)) { + gchar *plugin; + + g_object_get (ctx->self, + MM_BASE_MODEM_PLUGIN, &plugin, + NULL); + mm_gdbus_modem_set_plugin (ctx->skeleton, plugin); + g_free (plugin); + } break; } case INITIALIZATION_STEP_LAST: |