diff options
author | Denis Kenzior <denkenz@gmail.com> | 2011-03-30 13:30:01 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-03-30 13:30:01 -0500 |
commit | 3e799ce8b443e8eb547df2710329671814297cd4 (patch) | |
tree | 095b889e3e90b361b72a3190cc315b6ca4bddd43 /src/modem.c | |
parent | 29df90d2b14d37a15d13eaa38f41756ce4cbb675 (diff) | |
download | ofono-3e799ce8b443e8eb547df2710329671814297cd4.tar.bz2 |
devinfo: Register the devinfo atom
Diffstat (limited to 'src/modem.c')
-rw-r--r-- | src/modem.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/modem.c b/src/modem.c index d43059f9..908c7c58 100644 --- a/src/modem.c +++ b/src/modem.c @@ -1477,11 +1477,6 @@ static void devinfo_remove(struct ofono_atom *atom) if (info->driver->remove) info->driver->remove(info); - g_free(info->manufacturer); - g_free(info->model); - g_free(info->revision); - g_free(info->serial); - g_free(info); } @@ -1514,10 +1509,29 @@ struct ofono_devinfo *ofono_devinfo_create(struct ofono_modem *modem, return info; } +static void devinfo_unregister(struct ofono_atom *atom) +{ + struct ofono_devinfo *info = __ofono_atom_get_data(atom); + + g_free(info->manufacturer); + info->manufacturer = NULL; + + g_free(info->model); + info->model = NULL; + + g_free(info->revision); + info->revision = NULL; + + g_free(info->serial); + info->serial = NULL; +} + void ofono_devinfo_register(struct ofono_devinfo *info) { struct ofono_modem *modem = __ofono_atom_get_modem(info->atom); + __ofono_atom_register(info->atom, devinfo_unregister); + info->dun_watch = __ofono_modem_add_atom_watch(modem, OFONO_ATOM_TYPE_EMULATOR_DUN, dun_watch, info, NULL); |