diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-10-29 15:54:23 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-10-29 15:54:23 -0500 |
commit | 47fa0fb8839aad20efb5883339b42990920a7a7e (patch) | |
tree | 0c692bf5d4fc6aa70385b36f3e4e5b75daeebb67 /src/network.c | |
parent | 694cacf4f823645d47ec2481a1cae66308d0e6d1 (diff) | |
download | ofono-47fa0fb8839aad20efb5883339b42990920a7a7e.tar.bz2 |
Add utility to create a list of supported techs
Diffstat (limited to 'src/network.c')
-rw-r--r-- | src/network.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/network.c b/src/network.c index abdcf6c0..4af6d6b8 100644 --- a/src/network.c +++ b/src/network.c @@ -120,6 +120,30 @@ static inline const char *network_operator_status_to_string(int status) return "unknown"; } +static char **network_operator_technologies(struct network_operator_data *opd) +{ + unsigned int ntechs = 0; + char **techs; + unsigned int i; + + for (i = 0; i < sizeof(opd->techs); i++) { + if (opd->techs & (1 << i)) + ntechs += 1; + } + + techs = g_new0(char *, ntechs + 1); + ntechs = 0; + + for (i = 0; i < sizeof(opd->techs); i++) { + if (!(opd->techs & (1 << i))) + continue; + + techs[ntechs++] = g_strdup(registration_tech_to_string(i)); + } + + return techs; +} + static void register_callback(const struct ofono_error *error, void *data) { struct ofono_netreg *netreg = data; |