mirror of git://git.sysmocom.de/ofono
modem: Implement ofono_modem_set_timeout_hint
this patch provides the handling for the modem-depending powered timeout It provides the trivial implementation for ofono_modem_set_powered_timeout_hint, introducing the ofono_modem variable timeout_hint, used together with the existing ofono_modem variable timeout. The default value, previously hardcoded as a magic number, is provided by the DEFAULT_POWERED_TIMEOUT define and set as soon as the ofono_modem struct is created, and then can be overwritten by the aforementioned ofono_modem_set_powered_timeout_hint.
This commit is contained in:
parent
13467d5dcb
commit
f20da0e7f9
15
src/modem.c
15
src/modem.c
|
@ -34,6 +34,8 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
#define DEFAULT_POWERED_TIMEOUT (20)
|
||||||
|
|
||||||
static GSList *g_devinfo_drivers = NULL;
|
static GSList *g_devinfo_drivers = NULL;
|
||||||
static GSList *g_driver_list = NULL;
|
static GSList *g_driver_list = NULL;
|
||||||
static GSList *g_modem_list = NULL;
|
static GSList *g_modem_list = NULL;
|
||||||
|
@ -75,6 +77,7 @@ struct ofono_modem {
|
||||||
char *lock_owner;
|
char *lock_owner;
|
||||||
guint lock_watch;
|
guint lock_watch;
|
||||||
guint timeout;
|
guint timeout;
|
||||||
|
guint timeout_hint;
|
||||||
ofono_bool_t online;
|
ofono_bool_t online;
|
||||||
struct ofono_watchlist *online_watches;
|
struct ofono_watchlist *online_watches;
|
||||||
struct ofono_watchlist *powered_watches;
|
struct ofono_watchlist *powered_watches;
|
||||||
|
@ -1055,7 +1058,7 @@ static DBusMessage *set_property_lockdown(struct ofono_modem *modem,
|
||||||
}
|
}
|
||||||
|
|
||||||
modem->pending = dbus_message_ref(msg);
|
modem->pending = dbus_message_ref(msg);
|
||||||
modem->timeout = g_timeout_add_seconds(20,
|
modem->timeout = g_timeout_add_seconds(modem->timeout_hint,
|
||||||
set_powered_timeout, modem);
|
set_powered_timeout, modem);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1133,7 +1136,8 @@ static DBusMessage *modem_set_property(DBusConnection *conn,
|
||||||
return __ofono_error_failed(msg);
|
return __ofono_error_failed(msg);
|
||||||
|
|
||||||
modem->pending = dbus_message_ref(msg);
|
modem->pending = dbus_message_ref(msg);
|
||||||
modem->timeout = g_timeout_add_seconds(20,
|
modem->timeout = g_timeout_add_seconds(
|
||||||
|
modem->timeout_hint,
|
||||||
set_powered_timeout, modem);
|
set_powered_timeout, modem);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1843,6 +1847,12 @@ ofono_bool_t ofono_modem_get_boolean(struct ofono_modem *modem, const char *key)
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ofono_modem_set_powered_timeout_hint(struct ofono_modem *modem,
|
||||||
|
unsigned int seconds)
|
||||||
|
{
|
||||||
|
modem->timeout_hint = seconds;
|
||||||
|
}
|
||||||
|
|
||||||
void ofono_modem_set_name(struct ofono_modem *modem, const char *name)
|
void ofono_modem_set_name(struct ofono_modem *modem, const char *name)
|
||||||
{
|
{
|
||||||
if (modem->name)
|
if (modem->name)
|
||||||
|
@ -1904,6 +1914,7 @@ struct ofono_modem *ofono_modem_create(const char *name, const char *type)
|
||||||
modem->driver_type = g_strdup(type);
|
modem->driver_type = g_strdup(type);
|
||||||
modem->properties = g_hash_table_new_full(g_str_hash, g_str_equal,
|
modem->properties = g_hash_table_new_full(g_str_hash, g_str_equal,
|
||||||
g_free, unregister_property);
|
g_free, unregister_property);
|
||||||
|
modem->timeout_hint = DEFAULT_POWERED_TIMEOUT;
|
||||||
|
|
||||||
g_modem_list = g_slist_prepend(g_modem_list, modem);
|
g_modem_list = g_slist_prepend(g_modem_list, modem);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue