diff --git a/meson.build b/meson.build index 918acb6..ba38ca3 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,7 @@ project ( 'eg25manager', 'c', - version : '0.0.5', + version : '0.0.6', license : 'GPLv3+', meson_version : '>= 0.50.0', default_options : diff --git a/src/manager.c b/src/manager.c index 2b466e3..739a8f0 100644 --- a/src/manager.c +++ b/src/manager.c @@ -126,7 +126,6 @@ void modem_reset(struct EG25Manager *manager) write(fd, manager->modem_usb_id, strlen(manager->modem_usb_id)); close(fd); - manager->modem_state = EG25_STATE_CONFIGURED; return; error: diff --git a/src/mm-iface.c b/src/mm-iface.c index f1021de..f6ec6eb 100644 --- a/src/mm-iface.c +++ b/src/mm-iface.c @@ -84,13 +84,8 @@ static void interface_removed_cb(struct EG25Manager *manager, g_message("ModemManager interface `%s' removed on object `%s'", info->name, path); - if (g_strcmp0(info->name, MM_DBUS_INTERFACE_MODEM) == 0) { + if (g_strcmp0(info->name, MM_DBUS_INTERFACE_MODEM) == 0) manager->mm_modem = NULL; - if (manager->modem_usb_id) { - g_free(manager->modem_usb_id); - manager->modem_usb_id = NULL; - } - } } @@ -133,10 +128,6 @@ static void object_removed_cb(struct EG25Manager *manager, GDBusObject *object) g_message("ModemManager object `%s' removed", path); manager->mm_modem = NULL; - if (manager->modem_usb_id) { - g_free(manager->modem_usb_id); - manager->modem_usb_id = NULL; - } } @@ -196,6 +187,10 @@ void mm_iface_destroy(struct EG25Manager *manager) g_clear_object(&manager->mm_manager); manager->mm_manager = NULL; } + if (manager->modem_usb_id) { + g_free(manager->modem_usb_id); + manager->modem_usb_id = NULL; + } if (manager->mm_watch != 0) { g_bus_unwatch_name(manager->mm_watch); manager->mm_watch = 0; diff --git a/src/suspend.c b/src/suspend.c index 8296696..873a985 100644 --- a/src/suspend.c +++ b/src/suspend.c @@ -66,7 +66,8 @@ static void take_inhibitor(struct EG25Manager *manager) { GVariant *variant_arg; - g_assert(manager->suspend_inhibit_fd == -1); + if(manager->suspend_inhibit_fd != -1) + drop_inhibitor(manager); variant_arg = g_variant_new ("(ssss)", "sleep", "eg25manager", "eg25manager needs to prepare modem for sleep", "delay");