From: Frédéric Danis Date: Thu, 17 Feb 2011 17:23:29 +0000 (+0100) Subject: emulator: always create emulators in offline state X-Git-Tag: 0.43~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=afe16ba22a17946374cf5121c7d08e4bcfbd2942;p=platform%2Fupstream%2Fofono.git emulator: always create emulators in offline state this allows to fix problem when atom created in online state are destroyed when modem goes to offline state --- diff --git a/src/emulator.c b/src/emulator.c index 5744903..101b33d 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -115,7 +115,8 @@ struct ofono_emulator *ofono_emulator_create(struct ofono_modem *modem, em->type = type; - em->atom = __ofono_modem_add_atom(modem, atom_t, emulator_remove, em); + em->atom = __ofono_modem_add_atom_offline(modem, atom_t, + emulator_remove, em); return em; } diff --git a/src/modem.c b/src/modem.c index 8567cac..bf8b0c0 100644 --- a/src/modem.c +++ b/src/modem.c @@ -189,6 +189,20 @@ struct ofono_atom *__ofono_modem_add_atom(struct ofono_modem *modem, return atom; } +struct ofono_atom *__ofono_modem_add_atom_offline(struct ofono_modem *modem, + enum ofono_atom_type type, + void (*destruct)(struct ofono_atom *), + void *data) +{ + struct ofono_atom *atom; + + atom = __ofono_modem_add_atom(modem, type, destruct, data); + + atom->modem_state = MODEM_STATE_OFFLINE; + + return atom; +} + void *__ofono_atom_get_data(struct ofono_atom *atom) { return atom->data; diff --git a/src/ofono.h b/src/ofono.h index f52356e..9d13684 100644 --- a/src/ofono.h +++ b/src/ofono.h @@ -148,6 +148,11 @@ struct ofono_atom *__ofono_modem_add_atom(struct ofono_modem *modem, void (*destruct)(struct ofono_atom *), void *data); +struct ofono_atom *__ofono_modem_add_atom_offline(struct ofono_modem *modem, + enum ofono_atom_type type, + void (*destruct)(struct ofono_atom *), + void *data); + struct ofono_atom *__ofono_modem_find_atom(struct ofono_modem *modem, enum ofono_atom_type type);