[-]
[+]
|
Changed |
_service:tar_git:ofono.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:ofono.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -1,7 +1,7 @@
<services>
<service name="tar_git">
<param name="url">https://git.monich.net/git/ofono.git</param>
- <param name="branch">branch-1.28</param>
- <param name="revision">36c281e8</param>
+ <param name="branch">master</param>
+ <param name="revision">15d0364d</param>
</service>
</services>
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:ofono-1.27+git1+branch.1.28.20220109222857.18.g36c281e8.tar.bz2/upstream/src/idmap.c
^
|
@@ -1,213 +0,0 @@
-/*
- *
- * oFono - Open Source Telephony
- *
- * Copyright (C) 2008-2011 Intel Corporation. All rights reserved.
- * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string.h>
-
-#include <glib.h>
-
-#include "idmap.h"
-
-#define BITS_PER_LONG (sizeof(unsigned long) * 8)
-
-struct idmap {
- unsigned long *bits;
- unsigned int size;
- unsigned int min;
- unsigned int max;
-};
-
-static inline int ffz(unsigned long word)
-{
- return __builtin_ctzl(~word);
-}
-
-/*
- * Stolen from linux kernel lib/find_next_bit.c
- */
-static unsigned int find_next_zero_bit(const unsigned long *addr,
- unsigned int size,
- unsigned int offset)
-{
- const unsigned long *p = addr + offset / BITS_PER_LONG;
- unsigned int result = offset & ~(BITS_PER_LONG-1);
- unsigned long tmp;
-
- if (offset >= size)
- return size;
-
- size -= result;
- offset %= BITS_PER_LONG;
-
- if (offset) {
- tmp = *(p++);
- tmp |= ~0UL >> (BITS_PER_LONG - offset);
-
- if (size < BITS_PER_LONG)
- goto found_first;
-
- if (~tmp)
- goto found_middle;
-
- size -= BITS_PER_LONG;
- result += BITS_PER_LONG;
- }
-
- while (size & ~(BITS_PER_LONG-1)) {
- if (~(tmp = *(p++)))
- goto found_middle;
-
- size -= BITS_PER_LONG;
- result += BITS_PER_LONG;
- }
-
- if (!size)
- return result;
-
- tmp = *p;
-
-found_first:
- tmp |= ~0UL << size;
-
- if (tmp == ~0UL) /* Are any bits zero? */
- return result + size; /* Nope. */
-
-found_middle:
- return result + ffz(tmp);
-}
-
-struct idmap *idmap_new_from_range(unsigned int min, unsigned int max)
-{
- struct idmap *ret = g_new0(struct idmap, 1);
- unsigned int size = max - min + 1;
-
- ret->bits = g_new0(unsigned long,
- (size + BITS_PER_LONG - 1) / BITS_PER_LONG);
- ret->size = size;
- ret->min = min;
- ret->max = max;
-
- return ret;
-}
-
-struct idmap *idmap_new(unsigned int size)
-{
- return idmap_new_from_range(1, size);
-}
-
-void idmap_free(struct idmap *idmap)
-{
- g_free(idmap->bits);
- g_free(idmap);
-}
-
-void idmap_put(struct idmap *idmap, unsigned int id)
-{
- unsigned int offset = (id - idmap->min) / BITS_PER_LONG;
-
- id -= idmap->min;
-
- if (id > idmap->size)
- return;
-
- id %= BITS_PER_LONG;
-
- idmap->bits[offset] &= ~(1UL << id);
-}
-
-unsigned int idmap_alloc(struct idmap *idmap)
-{
- unsigned int bit;
- unsigned int offset;
-
- bit = find_next_zero_bit(idmap->bits, idmap->size, 0);
-
- if (bit >= idmap->size)
- return idmap->max + 1;
-
- offset = bit / BITS_PER_LONG;
- idmap->bits[offset] |= 1UL << (bit % BITS_PER_LONG);
-
- return bit + idmap->min;
-}
-
-void idmap_take(struct idmap *idmap, unsigned int id)
-{
- unsigned int bit = id - idmap->min;
- unsigned int offset;
-
- if (bit >= idmap->size)
- return;
-
- offset = bit / BITS_PER_LONG;
- idmap->bits[offset] |= 1UL << (bit % BITS_PER_LONG);
-}
-
-int idmap_find(struct idmap *idmap, unsigned int id)
-{
- unsigned int bit = id - idmap->min;
- unsigned int offset;
-
- if (bit >= idmap->size)
- return 0;
-
- offset = bit / BITS_PER_LONG;
- return (idmap->bits[offset] & (1UL << (bit % BITS_PER_LONG))) != 0;
-}
-
-/*
- * Allocate the next bit skipping the ids up to and including last. If there
- * is no free ids until the max id is encountered, the counter is wrapped back
- * to min and the search starts again.
- */
-unsigned int idmap_alloc_next(struct idmap *idmap, unsigned int last)
-{
- unsigned int bit;
- unsigned int offset;
-
- if (last < idmap->min || last > idmap->max)
- return idmap->max + 1;
-
- bit = find_next_zero_bit(idmap->bits, idmap->size,
- last - idmap->min + 1);
-
- if (bit >= idmap->size)
- return idmap_alloc(idmap);
-
- offset = bit / BITS_PER_LONG;
- idmap->bits[offset] |= 1UL << (bit % BITS_PER_LONG);
-
- return bit + idmap->min;
-}
-
-unsigned int idmap_get_min(struct idmap *idmap)
-{
- return idmap->min;
-}
-
-unsigned int idmap_get_max(struct idmap *idmap)
-{
- return idmap->max;
-}
|
[-]
[+]
|
Deleted |
_service:tar_git:ofono-1.27+git1+branch.1.28.20220109222857.18.g36c281e8.tar.bz2/upstream/src/idmap.h
^
|
@@ -1,33 +0,0 @@
-/*
- *
- * oFono - Open Source Telephony
- *
- * Copyright (C) 2008-2011 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-struct idmap;
-
-struct idmap *idmap_new(unsigned int size);
-void idmap_free(struct idmap *idmap);
-void idmap_put(struct idmap *idmap, unsigned int id);
-void idmap_take(struct idmap *idmap, unsigned int id);
-int idmap_find(struct idmap *idmap, unsigned int id);
-unsigned int idmap_alloc(struct idmap *idmap);
-unsigned int idmap_alloc_next(struct idmap *idmap, unsigned int last);
-struct idmap *idmap_new_from_range(unsigned int min, unsigned int max);
-unsigned int idmap_get_min(struct idmap *idmap);
-unsigned int idmap_get_max(struct idmap *idmap);
|
[-]
[+]
|
Deleted |
_service:tar_git:ofono-1.27+git1+branch.1.28.20220109222857.18.g36c281e8.tar.bz2/upstream/unit/test-idmap.c
^
|
@@ -1,121 +0,0 @@
-/*
- *
- * oFono - Open Source Telephony
- *
- * Copyright (C) 2008-2011 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib.h>
-
-#include "idmap.h"
-
-static void test_alloc(void)
-{
- struct idmap *idmap;
- unsigned int bit;
-
- idmap = idmap_new(2);
-
- g_assert(idmap);
- g_assert(idmap_get_min(idmap) == 1);
-
- bit = idmap_alloc(idmap);
- g_assert(bit == 1);
- g_assert(idmap_find(idmap, bit));
- g_assert(!idmap_find(idmap, idmap_get_max(idmap) + 1));
-
- bit = idmap_alloc(idmap);
- g_assert(bit == 2);
-
- bit = idmap_alloc(idmap);
- g_assert(bit == 3);
-
- idmap_put(idmap, 3);
- bit = idmap_alloc(idmap);
- g_assert(bit == 3);
-
- idmap_put(idmap, 0);
- bit = idmap_alloc(idmap);
- g_assert(bit == 3);
-
- idmap_put(idmap, 1);
- bit = idmap_alloc(idmap);
- g_assert(bit == 1);
-
- idmap_put(idmap, 1);
- idmap_put(idmap, 2);
- bit = idmap_alloc(idmap);
- g_assert(bit == 1);
-
- idmap_put(idmap, 1);
- idmap_take(idmap, 1);
- idmap_take(idmap, 3);
- bit = idmap_alloc(idmap);
- g_assert(bit == 2);
-
- idmap_free(idmap);
-}
-
-static void test_alloc_next(void)
-{
- struct idmap *idmap;
- unsigned int bit;
-
- idmap = idmap_new(256);
-
- g_assert(idmap);
-
- bit = idmap_alloc_next(idmap, 255);
- g_assert(bit == 256);
-
- bit = idmap_alloc_next(idmap, 255);
- g_assert(bit == 1);
-
- while (idmap_alloc(idmap) < (sizeof(unsigned long) * 8) + 1);
- bit = idmap_alloc_next(idmap, 1);
- g_assert(bit == (sizeof(unsigned long) * 8) + 2);
-
- idmap_free(idmap);
-
- idmap = idmap_new(2);
-
- g_assert(idmap);
- g_assert(idmap_alloc_next(idmap, 0) == 3);
- g_assert(idmap_alloc_next(idmap, 3) == 3);
-
- bit = idmap_alloc_next(idmap, 1);
- g_assert(bit == 2);
-
- bit = idmap_alloc_next(idmap, 2);
- g_assert(bit == 1);
-
- idmap_free(idmap);
-}
-
-int main(int argc, char **argv)
-{
- g_test_init(&argc, &argv, NULL);
-
- g_test_add_func("/testidmap/alloc", test_alloc);
- g_test_add_func("/testidmap/alloc_next", test_alloc_next);
-
- return g_test_run();
-}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/ofono/include/voicecall.h
^
|
@@ -190,6 +190,10 @@
void ofono_voicecall_ringback_tone_notify(struct ofono_voicecall *vc,
const ofono_bool_t playTone);
+/* Since mer/1.27+git3 */
+ofono_bool_t ofono_voicecall_is_emergency_number(struct ofono_voicecall *vc,
+ const char *number);
+
#ifdef __cplusplus
}
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/ofono/src/common.c
^
|
@@ -424,7 +424,7 @@
}
const char *ofono_phone_number_to_string(const struct ofono_phone_number *ph,
- char buffer[/* OFONO_MAX_PHONE_NUMBER_BUFFER_SIZE */])
+ char buffer[/* OFONO_PHONE_NUMBER_BUFFER_SIZE */])
{
if (ph->type == 145 && (strlen(ph->number) > 0) &&
ph->number[0] != '+') {
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/ofono/src/slot-manager.c
^
|
@@ -1,7 +1,7 @@
/*
* oFono - Open Source Telephony
*
- * Copyright (C) 2017-2021 Jolla Ltd.
+ * Copyright (C) 2017-2022 Jolla Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -183,7 +183,8 @@
static void slot_manager_emit_all_queued_signals(OfonoSlotManagerObject *mgr);
static void slot_manager_update_ready(OfonoSlotManagerObject *mgr);
static enum slot_manager_dbus_signal slot_manager_update_modem_paths
- (OfonoSlotManagerObject *mgr) G_GNUC_WARN_UNUSED_RESULT;
+ (OfonoSlotManagerObject *mgr, gboolean imsi_change)
+ G_GNUC_WARN_UNUSED_RESULT;
static inline OfonoSlotBase *slot_base_cast(gpointer p)
{
@@ -375,7 +376,7 @@
(OfonoSlotManagerObject *mgr, enum slot_manager_dbus_signal extra)
{
slot_manager_dbus_signal(mgr->dbus, extra |
- slot_manager_update_modem_paths(mgr));
+ slot_manager_update_modem_paths(mgr, FALSE));
}
static void slot_update_data_role(OfonoSlotObject *slot,
@@ -421,34 +422,9 @@
{
OfonoSlotObject *slot = OFONO_SLOT_OBJECT(data);
OfonoSlotManagerObject *mgr = slot->manager;
- OfonoSlotObject *voice_slot = mgr->voice_slot;
- OfonoSlotObject *data_slot = mgr->data_slot;
- int signal_mask;
-
- /*
- * We want the first slot to be selected by default.
- * However, things may become available in pretty much
- * any order, so reset the slot pointers to NULL and let
- * slot_manager_update_modem_paths() to pick them again.
- */
- mgr->voice_slot = NULL;
- mgr->data_slot = NULL;
- mgr->pub.default_voice_path = NULL;
- mgr->pub.default_data_path = NULL;
- signal_mask = slot_manager_update_modem_paths(mgr);
- if (voice_slot != mgr->voice_slot) {
- if (!mgr->voice_slot) {
- DBG("No default voice SIM");
- }
- signal_mask |= SLOT_MANAGER_DBUS_SIGNAL_VOICE_PATH;
- }
- if (data_slot != mgr->data_slot) {
- if (!mgr->data_slot) {
- DBG("No default data SIM");
- }
- signal_mask |= SLOT_MANAGER_DBUS_SIGNAL_DATA_PATH;
- }
- slot_manager_dbus_signal(mgr->dbus, signal_mask);
+
+ slot_manager_dbus_signal(mgr->dbus,
+ slot_manager_update_modem_paths(mgr, TRUE));
slot_manager_emit_all_queued_signals(mgr);
}
@@ -707,7 +683,7 @@
* queued signals mask but doesn't actually emit any signals.
*/
static enum slot_manager_dbus_signal slot_manager_update_modem_paths
- (OfonoSlotManagerObject *mgr)
+ (OfonoSlotManagerObject *mgr, gboolean imsi_change)
{
enum slot_manager_dbus_signal mask = SLOT_MANAGER_DBUS_SIGNAL_NONE;
OfonoSlotObject *slot = NULL;
@@ -719,7 +695,7 @@
if (mgr->default_voice_imsi) {
slot = slot_manager_find_slot_imsi(mgr,
mgr->default_voice_imsi);
- } else if (mgr->voice_slot) {
+ } else if (mgr->voice_slot && !imsi_change) {
/* Make sure that the slot is enabled and SIM is in */
slot = slot_manager_find_slot_imsi(mgr,
mgr->voice_slot->watch->imsi);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/ofono/src/voicecall.c
^
|
@@ -4663,3 +4663,10 @@
break;
}
}
+
+/* Since mer/1.27+git3 */
+ofono_bool_t ofono_voicecall_is_emergency_number(struct ofono_voicecall *vc,
+ const char *number)
+{
+ return vc && number && is_emergency_number(vc, number);
+}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/ofono/unit/test-slot-manager.c
^
|
@@ -1,7 +1,7 @@
/*
* oFono - Open Source Telephony
*
- * Copyright (C) 2017-2021 Jolla Ltd.
+ * Copyright (C) 2017-2022 Jolla Ltd.
* Copyright (C) 2019-2020 Open Mobile Platform LLC.
*
* This program is free software; you can redistribute it and/or modify
@@ -51,6 +51,12 @@
#define TEST_SLOT_ERROR_KEY "SlotError"
#define TEST_CONFIG_DIR_TEMPLATE "test-saifish_manager-config-XXXXXX"
+#define SM_STORE "ril"
+#define SM_STORE_GROUP "Settings"
+#define SM_STORE_ENABLED_SLOTS "EnabledSlots"
+#define SM_STORE_DEFAULT_VOICE_SIM "DefaultVoiceSim"
+#define SM_STORE_DEFAULT_DATA_SIM "DefaultDataSim"
+
static GMainLoop *test_loop = NULL;
static GSList *test_drivers = NULL;
static struct ofono_slot_driver_reg *test_driver_reg = NULL;
@@ -1141,6 +1147,7 @@
/* Set data SIM IMSI */
fake_slot_manager_dbus.cb.set_default_data_imsi(m, TEST_IMSI);
g_assert_cmpstr(m->default_data_imsi, == ,TEST_IMSI);
+ g_assert_cmpint(s->data_role, == ,OFONO_SLOT_DATA_NONE);
g_assert(!m->default_data_path); /* Modem is offline */
/* Data IMSI is signaled, path is not */
g_assert_cmpuint(fake_slot_manager_dbus.signals &
@@ -1157,6 +1164,7 @@
fake_watch_emit_queued_signals(w);
/* Now is should point to our slot */
g_assert_cmpstr(m->default_data_path, == ,TEST_PATH);
+ g_assert_cmpint(s->data_role, == ,OFONO_SLOT_DATA_INTERNET);
/* And D-Bus clients are notified */
g_assert(fake_slot_manager_dbus.signals &
SLOT_MANAGER_DBUS_SIGNAL_DATA_PATH);
@@ -1166,6 +1174,7 @@
fake_slot_manager_dbus.cb.set_default_data_imsi(m, TEST_IMSI_1);
g_assert_cmpstr(m->default_data_imsi, == ,TEST_IMSI_1);
g_assert(!m->default_data_path);
+ g_assert_cmpint(s->data_role, == ,OFONO_SLOT_DATA_NONE);
/* And D-Bus clients are notified again */
g_assert_cmpuint(fake_slot_manager_dbus.signals &
(SLOT_MANAGER_DBUS_SIGNAL_DATA_IMSI |
@@ -1177,8 +1186,10 @@
/* Switch the SIM */
fake_watch_set_ofono_imsi(w, TEST_IMSI_1);
+ fake_watch_set_ofono_iccid(w, TEST_ICCID_1);
fake_watch_emit_queued_signals(w);
g_assert_cmpstr(m->default_data_path, == ,TEST_PATH);
+ g_assert_cmpint(s->data_role, == ,OFONO_SLOT_DATA_INTERNET);
/* And D-Bus clients are notified of data path change */
g_assert_cmpuint(fake_slot_manager_dbus.signals &
(SLOT_MANAGER_DBUS_SIGNAL_DATA_IMSI |
@@ -1193,6 +1204,7 @@
g_assert_cmpint(m->slots[0]->sim_presence, == ,OFONO_SLOT_SIM_ABSENT);
g_assert_cmpstr(m->default_data_imsi, == ,TEST_IMSI_1);
g_assert(!m->default_data_path);
+ g_assert_cmpint(s->data_role, == ,OFONO_SLOT_DATA_NONE);
/* And D-Bus clients are notified of data path change */
g_assert_cmpuint(fake_slot_manager_dbus.signals &
(SLOT_MANAGER_DBUS_SIGNAL_DATA_IMSI |
@@ -1200,6 +1212,20 @@
SLOT_MANAGER_DBUS_SIGNAL_DATA_PATH);
fake_slot_manager_dbus.signals &= ~SLOT_MANAGER_DBUS_SIGNAL_DATA_IMSI;
+ /* Insert the SIM back */
+ fake_watch_set_ofono_sim(w, &sim);
+ ofono_slot_set_sim_presence(s, OFONO_SLOT_SIM_PRESENT);
+ g_assert_cmpint(s->sim_presence, == ,OFONO_SLOT_SIM_PRESENT);
+ fake_watch_set_ofono_iccid(w, TEST_ICCID_1);
+ fake_watch_set_ofono_imsi(w, TEST_IMSI_1);
+ fake_watch_emit_queued_signals(w);
+ g_assert_cmpint(s->data_role, == ,OFONO_SLOT_DATA_INTERNET);
+ g_assert_cmpuint(fake_slot_manager_dbus.signals &
+ (SLOT_MANAGER_DBUS_SIGNAL_DATA_IMSI |
+ SLOT_MANAGER_DBUS_SIGNAL_DATA_PATH), == ,
+ SLOT_MANAGER_DBUS_SIGNAL_DATA_PATH);
+ fake_slot_manager_dbus.signals &= ~SLOT_MANAGER_DBUS_SIGNAL_DATA_IMSI;
+
ofono_watch_unref(w);
g_main_loop_quit(test_loop);
return G_SOURCE_REMOVE;
@@ -1629,6 +1655,102 @@
test_common_deinit();
}
+/* ==== config_storage ==== */
+
+static gboolean test_config_storage_run(gpointer user_data)
+{
+ TestDriverData *dd = user_data;
+ struct ofono_slot_manager *m = fake_slot_manager_dbus.m;
+ struct ofono_slot *s = ofono_slot_add(dd->manager, TEST_PATH,
+ OFONO_RADIO_ACCESS_MODE_GSM, TEST_IMEI, TEST_IMEISV,
+ OFONO_SLOT_SIM_PRESENT, OFONO_SLOT_NO_FLAGS);
+ struct ofono_slot *s2 = ofono_slot_add(dd->manager, TEST_PATH_1,
+ OFONO_RADIO_ACCESS_MODE_GSM, TEST_IMEI_1, TEST_IMEISV,
+ OFONO_SLOT_SIM_PRESENT, OFONO_SLOT_NO_FLAGS);
+ char *storage_file = g_build_filename(STORAGEDIR, SM_STORE, NULL);
+ GKeyFile *storage;
+ char **slots;
+ char* val;
+
+ DBG("");
+
+ /* Unblocking D-Bus clients will exit the loop */
+ fake_slot_manager_dbus.fn_block_changed =
+ test_quit_loop_when_unblocked;
+
+ /* Finish initialization with 2 slots */
+ g_assert(s);
+ g_assert(s2);
+ g_assert(!m->ready);
+ ofono_slot_driver_started(test_driver_reg);
+ ofono_slot_unref(s);
+ ofono_slot_unref(s2);
+ g_assert(m->ready);
+
+ /* No file yet */
+ storage = g_key_file_new();
+ g_assert(!g_key_file_load_from_file(storage, storage_file, 0, NULL));
+
+ /* Enable one slot */
+ slots = gutil_strv_add(NULL, TEST_PATH);
+ fake_slot_manager_dbus.cb.set_enabled_slots(m, slots);
+ g_assert(m->slots[0]->enabled);
+ g_assert(!m->slots[1]->enabled);
+
+ /* Check the config file */
+ g_assert(g_key_file_load_from_file(storage, storage_file, 0, NULL));
+ val = g_key_file_get_string(storage, SM_STORE_GROUP,
+ SM_STORE_ENABLED_SLOTS, NULL);
+ g_assert_cmpstr(val, == ,TEST_PATH);
+ g_free(val);
+ g_key_file_free(storage);
+
+ /* Enable both slots */
+ slots = gutil_strv_add(slots, TEST_PATH_1);
+ fake_slot_manager_dbus.cb.set_enabled_slots(m, slots);
+ g_assert(m->slots[0]->enabled);
+ g_assert(m->slots[1]->enabled);
+ g_strfreev(slots);
+
+ /* There's no [EnabledSlots] there because it's the default config */
+ storage = g_key_file_new();
+ g_assert(g_key_file_load_from_file(storage, storage_file, 0, NULL));
+ g_assert(!g_key_file_get_string(storage, SM_STORE_GROUP,
+ SM_STORE_ENABLED_SLOTS, NULL));
+ g_key_file_free(storage);
+
+ g_free(storage_file);
+ return G_SOURCE_REMOVE;
+}
+
+static guint test_config_storage_start(TestDriverData *dd)
+{
+ return g_idle_add(test_config_storage_run, dd);
+}
+
+static void test_config_storage(void)
+{
+ static const struct ofono_slot_driver test_config_storage_d = {
+ .name = "config_storage",
+ .api_version = OFONO_SLOT_API_VERSION,
+ .init = test_driver_init,
+ .start = test_config_storage_start,
+ .cleanup = test_driver_cleanup
+ };
+
+ test_common_init();
+
+ test_driver_reg = ofono_slot_driver_register(&test_config_storage_d);
+ g_assert(test_driver_reg);
+ g_main_loop_run(test_loop);
+ g_assert(test_timeout_id);
+
+ ofono_slot_driver_unregister(test_driver_reg);
+ test_driver_reg = NULL;
+ test_common_deinit();
+}
+
+
/* ==== storage ==== */
static void test_storage_init()
@@ -1805,6 +1927,7 @@
g_test_add_data_func(TEST_("auto_data_sim_once"), "once",
test_auto_data_sim);
g_test_add_func(TEST_("multisim"), test_multisim);
+ g_test_add_func(TEST_("config_storage"), test_config_storage);
g_test_add_func(TEST_("storage"), test_storage);
return g_test_run();
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/AUTHORS
^
|
@@ -139,3 +139,5 @@
Julien Tournier <tournier.julien@gmail.com>
Nandini Rebello <nandini.rebello@intel.com>
Giacinto Cifelli <gciofono@gmail.com>
+Khaled Romdhani <khaledromdhani216@gmail.com>
+Pavel Machek <pavel@ucw.cz>
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/ChangeLog
^
|
@@ -1,3 +1,6 @@
+ver 1.28:
+ Fix issue with SIM initialization and Gemalto modems.
+
ver 1.27:
Add support for handling SIMCom based SIM800 modems.
Add support for SIM lock state with xmm7xxx modems.
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/Makefile.am
^
|
@@ -30,7 +30,9 @@
ell/checksum.h \
ell/random.h \
ell/uuid.h \
- ell/file.h
+ ell/file.h \
+ ell/uintset.h \
+ ell/string.h
ell_sources = ell/private.h \
ell/missing.h \
@@ -48,7 +50,9 @@
ell/checksum.c \
ell/random.c \
ell/uuid.c \
- ell/file.c
+ ell/file.c \
+ ell/uintset.c \
+ ell/string.c
ell_libell_internal_la_SOURCES = $(ell_headers) $(ell_sources)
endif
@@ -699,8 +703,8 @@
src/phonebook.c src/history.c src/message-waiting.c \
src/simutil.h src/simutil.c src/storage.h \
src/storage.c src/cbs.c src/watch.c src/call-volume.c \
- src/gprs.c src/idmap.h src/idmap.c \
- src/radio-settings.c src/stkutil.h src/stkutil.c \
+ src/gprs.c src/radio-settings.c \
+ src/stkutil.h src/stkutil.c \
src/nettime.c src/stkagent.c src/stkagent.h \
src/simfs.c src/simfs.h src/audio-settings.c \
src/smsagent.c src/smsagent.h src/ctm.c \
@@ -892,7 +896,7 @@
unit_objects =
-unit_tests = unit/test-common unit/test-util unit/test-idmap \
+unit_tests = unit/test-common unit/test-util \
unit/test-simutil unit/test-stkutil \
unit/test-sms unit/test-cdmasms \
unit/test-mbim \
@@ -905,40 +909,36 @@
unit/test-sms-root unit/test-mux unit/test-caif
unit_test_common_SOURCES = unit/test-common.c src/common.c src/util.c
-unit_test_common_LDADD = @GLIB_LIBS@
+unit_test_common_LDADD = @GLIB_LIBS@ $(ell_ldadd)
unit_objects += $(unit_test_common_OBJECTS)
unit_test_util_SOURCES = unit/test-util.c src/util.c
-unit_test_util_LDADD = @GLIB_LIBS@
+unit_test_util_LDADD = @GLIB_LIBS@ $(ell_ldadd)
unit_objects += $(unit_test_utils_OBJECTS)
-unit_test_idmap_SOURCES = unit/test-idmap.c src/idmap.c
-unit_test_idmap_LDADD = @GLIB_LIBS@
-unit_objects += $(unit_test_idmap_OBJECTS)
-
unit_test_simutil_SOURCES = unit/test-simutil.c src/util.c \
src/simutil.c src/smsutil.c src/storage.c
-unit_test_simutil_LDADD = @GLIB_LIBS@
+unit_test_simutil_LDADD = @GLIB_LIBS@ $(ell_ldadd)
unit_objects += $(unit_test_simutil_OBJECTS)
unit_test_stkutil_SOURCES = unit/test-stkutil.c unit/stk-test-data.h \
src/util.c \
src/storage.c src/smsutil.c \
src/simutil.c src/stkutil.c
-unit_test_stkutil_LDADD = @GLIB_LIBS@
+unit_test_stkutil_LDADD = @GLIB_LIBS@ $(ell_ldadd)
unit_objects += $(unit_test_stkutil_OBJECTS)
unit_test_sms_SOURCES = unit/test-sms.c src/util.c src/smsutil.c src/storage.c
-unit_test_sms_LDADD = @GLIB_LIBS@
+unit_test_sms_LDADD = @GLIB_LIBS@ $(ell_ldadd)
unit_objects += $(unit_test_sms_OBJECTS)
unit_test_cdmasms_SOURCES = unit/test-cdmasms.c src/cdma-smsutil.c
-unit_test_cdmasms_LDADD = @GLIB_LIBS@
+unit_test_cdmasms_LDADD = @GLIB_LIBS@ $(ell_ldadd)
unit_objects += $(unit_test_cdmasms_OBJECTS)
unit_test_sms_root_SOURCES = unit/test-sms-root.c \
src/util.c src/smsutil.c src/storage.c
-unit_test_sms_root_LDADD = @GLIB_LIBS@
+unit_test_sms_root_LDADD = @GLIB_LIBS@ $(ell_ldadd)
unit_objects += $(unit_test_sms_root_OBJECTS)
unit_test_mux_SOURCES = unit/test-mux.c $(gatchat_sources)
@@ -964,28 +964,32 @@
unit/test-rilmodem-cs.c \
drivers/rilmodem/call-settings.c
unit_test_rilmodem_cs_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \
- @GLIB_LIBS@ @DBUS_LIBS@ -ldl
+ @GLIB_LIBS@ @DBUS_LIBS@ \
+ $(ell_ldadd) -ldl
unit_objects += $(unit_test_rilmodem_cs_OBJECTS)
unit_test_rilmodem_sms_SOURCES = $(test_rilmodem_sources) \
unit/test-rilmodem-sms.c \
drivers/rilmodem/sms.c
unit_test_rilmodem_sms_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \
- @GLIB_LIBS@ @DBUS_LIBS@ -ldl
+ @GLIB_LIBS@ @DBUS_LIBS@ \
+ $(ell_ldadd) -ldl
unit_objects += $(unit_test_rilmodem_sms_OBJECTS)
unit_test_rilmodem_cb_SOURCES = $(test_rilmodem_sources) \
unit/test-rilmodem-cb.c \
drivers/rilmodem/call-barring.c
unit_test_rilmodem_cb_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \
- @GLIB_LIBS@ @DBUS_LIBS@ -ldl
+ @GLIB_LIBS@ @DBUS_LIBS@ \
+ $(ell_ldadd) -ldl
unit_objects += $(unit_test_rilmodem_cb_OBJECTS)
unit_test_rilmodem_gprs_SOURCES = $(test_rilmodem_sources) \
unit/test-rilmodem-gprs.c \
drivers/rilmodem/gprs.c
unit_test_rilmodem_gprs_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \
- @GLIB_LIBS@ @DBUS_LIBS@ -ldl
+ @GLIB_LIBS@ @DBUS_LIBS@ \
+ $(ell_ldadd) -ldl
unit_objects += $(unit_test_rilmodem_gprs_OBJECTS)
unit_test_mbim_SOURCES = unit/test-mbim.c \
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/acinclude.m4
^
|
@@ -12,7 +12,8 @@
AC_DEFUN([COMPILER_FLAGS], [
if (test "${CFLAGS}" = ""); then
- CFLAGS="-Wall -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
+ CFLAGS="-Wall -O2 -fsigned-char -fno-exceptions"
+ CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
fi
if (test "$USE_MAINTAINER_MODE" = "yes"); then
CFLAGS="$CFLAGS -Werror -Wextra"
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/configure.ac
^
|
@@ -1,5 +1,5 @@
AC_PREREQ(2.60)
-AC_INIT(ofono, 1.27)
+AC_INIT(ofono, 1.28)
AM_INIT_AUTOMAKE([foreign subdir-objects color-tests])
AC_CONFIG_HEADERS(config.h)
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/atmodem/phonebook.c
^
|
@@ -29,6 +29,7 @@
#include <errno.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/log.h>
#include <ofono/modem.h>
@@ -86,16 +87,12 @@
if (g_at_result_iter_next_hexstring(iter, &hex, &len) == FALSE)
return FALSE;
- utf8 = g_convert((const gchar*) hex, len,
- "UTF-8//TRANSLIT", "UCS-2BE",
- NULL, NULL, NULL);
-
- if (utf8) {
- *str = utf8;
- return TRUE;
- }
+ utf8 = l_utf8_from_ucs2be(hex, len);
+ if (!utf8)
+ return FALSE;
- return FALSE;
+ *str = utf8;
+ return TRUE;
}
/*
@@ -103,7 +100,7 @@
* characters, same as in UTF8
*/
if (g_at_result_iter_next_string(iter, &string)) {
- *str = g_strdup(string);
+ *str = l_strdup(string);
return TRUE;
}
@@ -187,12 +184,12 @@
adtype, secondtext, email,
sip_uri, tel_uri);
- g_free(text);
- g_free(group);
- g_free(secondtext);
- g_free(email);
- g_free(sip_uri);
- g_free(tel_uri);
+ l_free(text);
+ l_free(group);
+ l_free(secondtext);
+ l_free(email);
+ l_free(sip_uri);
+ l_free(tel_uri);
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/atmodem/sms.c
^
|
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/log.h>
#include <ofono/modem.h>
@@ -921,7 +922,7 @@
if (len != tpdu_len)
goto err;
- d->cnma_ack_pdu = encode_hex(pdu, tpdu_len, 0);
+ d->cnma_ack_pdu = l_util_hexstring(pdu, tpdu_len);
if (d->cnma_ack_pdu == NULL)
goto err;
@@ -1318,7 +1319,7 @@
{
struct sms_data *data = ofono_sms_get_data(sms);
- g_free(data->cnma_ack_pdu);
+ l_free(data->cnma_ack_pdu);
if (data->timeout_source > 0)
g_source_remove(data->timeout_source);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/atmodem/ussd.c
^
|
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/log.h>
#include <ofono/modem.h>
@@ -87,12 +88,12 @@
return NULL;
if (written > 182) {
- g_free(gsm);
+ l_free(gsm);
return NULL;
}
- packed = pack_7bit_own_buf(gsm, written, 0, TRUE, msg_len, 0, msg);
- g_free(gsm);
+ packed = pack_7bit_own_buf(gsm, written, 0, true, msg_len, 0, msg);
+ l_free(gsm);
return packed;
}
@@ -136,7 +137,7 @@
switch (data->charset) {
case AT_UTIL_CHARSET_GSM:
msg_ptr = pack_7bit_own_buf((const guint8 *) content,
- -1, 0, TRUE, &msg_len,
+ -1, 0, true, &msg_len,
0, msg);
break;
@@ -200,7 +201,7 @@
unsigned char unpacked_buf[182];
long written;
- unpack_7bit_own_buf(pdu, len, 0, TRUE, sizeof(unpacked_buf),
+ unpack_7bit_own_buf(pdu, len, 0, true, sizeof(unpacked_buf),
&written, 0, unpacked_buf);
if (written < 1)
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/ifxmodem/gprs-context.c
^
|
@@ -616,9 +616,11 @@
DBG("");
- if (stat(TUN_DEV, &st) < 0) {
- ofono_error("Missing support for TUN/TAP devices");
- return -ENODEV;
+ if (vendor != OFONO_VENDOR_XMM) {
+ if (stat(TUN_DEV, &st) < 0) {
+ ofono_error("Missing support for TUN/TAP devices");
+ return -ENODEV;
+ }
}
if (vendor != OFONO_VENDOR_XMM) {
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/rilmodem/call-forwarding.c
^
|
@@ -37,7 +37,9 @@
#include <ofono/call-forwarding.h>
#include "common.h"
+#if __GNUC__ > 7
#pragma GCC diagnostic ignored "-Wrestrict"
+#endif
#include "gril.h"
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/rilmodem/network-registration.c
^
|
@@ -36,7 +36,9 @@
#include <ofono/modem.h>
#include <ofono/netreg.h>
+#if __GNUC__ > 7
#pragma GCC diagnostic ignored "-Wrestrict"
+#endif
#include <gril/gril.h>
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/rilmodem/phonebook.c
^
|
@@ -34,6 +34,7 @@
#include <stdint.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono.h>
#include <ofono/log.h>
@@ -180,29 +181,22 @@
if (number_length != UNUSED && number_length != 0) {
number_length--;
/* '+' + number + terminator */
- number = g_try_malloc0(2 * number_length + 2);
+ number = g_new(char, 2 * number_length + 2);
+ prefix = 0;
- if (number) {
- prefix = 0;
-
- if ((msg[number_start + 1] & TON_MASK)
- == TON_INTERNATIONAL) {
- number[0] = '+';
- prefix = 1;
- }
-
- for (i = 0; i < number_length; i++) {
-
- number[2 * i + prefix] =
- digit_to_utf8[msg[number_start + 2 + i]
- & 0x0f];
- number[2 * i + 1 + prefix] =
- digit_to_utf8[msg[number_start + 2 + i]
- >> 4];
- }
+ if ((msg[number_start + 1] & TON_MASK) == TON_INTERNATIONAL) {
+ number[0] = '+';
+ prefix = 1;
+ }
- extension_record = msg[len - 1];
+ for (i = 0; i < number_length; i++) {
+ number[2 * i + prefix] =
+ digit_to_utf8[msg[number_start + 2 + i] & 0x0f];
+ number[2 * i + 1 + prefix] =
+ digit_to_utf8[msg[number_start + 2 + i] >> 4];
}
+
+ extension_record = msg[len - 1];
}
DBG("ADN name %s, number %s ", name, number);
@@ -212,12 +206,7 @@
if ((name == NULL || *name == '\0') && number == NULL)
goto end;
- new_entry = g_try_malloc0(sizeof(*new_entry));
- if (new_entry == NULL) {
- ofono_error("%s: out of memory", __func__);
- goto end;
- }
-
+ new_entry = l_new(struct phonebook_entry, 1);
new_entry->name = name;
new_entry->number = number;
@@ -246,8 +235,8 @@
return new_entry;
end:
- g_free(name);
- g_free(number);
+ l_free(name);
+ l_free(number);
return NULL;
}
@@ -314,17 +303,17 @@
if (entry) {
/* If one already exists, delete it */
if (entry->sne)
- g_free(entry->sne);
+ l_free(entry->sne);
DBG("Adding SNE %s to %d", sne, rec_data->adn_idx);
DBG("name %s", entry->name);
entry->sne = sne;
} else {
- g_free(sne);
+ l_free(sne);
}
} else {
- g_free(sne);
+ l_free(sne);
}
}
@@ -358,9 +347,7 @@
number_length--;
/* '+' + number + terminator */
- anr = g_try_malloc0(2 * number_length + 2);
- if (anr == NULL)
- return;
+ anr = l_new(char, 2 * number_length + 2);
prefix = 0;
if ((msg[2] & TON_MASK) == TON_INTERNATIONAL) {
@@ -376,13 +363,13 @@
entry = g_tree_lookup(ref->phonebook,
GINT_TO_POINTER(rec_data->adn_idx));
if (entry == NULL) {
- g_free(anr);
+ l_free(anr);
return;
}
/* If one already exists, delete it */
if (entry->anr)
- g_free(entry->anr);
+ l_free(entry->anr);
DBG("Adding ANR %s to %d", anr, rec_data->adn_idx);
DBG("name %s", entry->name);
@@ -427,20 +414,20 @@
email = sim_string_to_utf8(msg, len);
if (email == NULL || *email == '\0') {
- g_free(email);
+ l_free(email);
return;
}
entry = g_tree_lookup(ref->phonebook,
GINT_TO_POINTER(rec_data->adn_idx));
if (entry == NULL) {
- g_free(email);
+ l_free(email);
return;
}
/* if one already exists, delete it */
if (entry->email)
- g_free(entry->email);
+ l_free(entry->email);
DBG("Adding email to entry %d", rec_data->adn_idx);
DBG("name %s", entry->name);
@@ -582,12 +569,12 @@
entry->email,
NULL, NULL);
- g_free(entry->name);
- g_free(entry->number);
- g_free(entry->email);
- g_free(entry->anr);
- g_free(entry->sne);
- g_free(entry);
+ l_free(entry->name);
+ l_free(entry->number);
+ l_free(entry->email);
+ l_free(entry->anr);
+ l_free(entry->sne);
+ l_free(entry);
return FALSE;
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/rilmodem/sim.c
^
|
@@ -31,6 +31,7 @@
#include <errno.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/log.h>
#include <ofono/modem.h>
@@ -150,7 +151,7 @@
int sw1, sw2;
char *hex_response;
unsigned char *response = NULL;
- long len;
+ size_t len;
gboolean ok = FALSE;
int flen = 0, rlen = 0, str = 0;
guchar access[3] = { 0x00, 0x00, 0x00 };
@@ -173,7 +174,7 @@
goto error;
if (hex_response != NULL) {
- response = decode_hex(hex_response, -1, &len, -1);
+ response = l_util_from_hexstring(hex_response, &len);
g_free(hex_response);
hex_response = NULL;
@@ -217,9 +218,6 @@
return;
}
- if (len < 0)
- goto error;
-
if (response[0] == 0x62) {
ok = sim_parse_3g_get_response(response, len,
&flen, &rlen, &str,
@@ -230,7 +228,7 @@
&flen, &rlen, &str,
access, &file_status);
- g_free(response);
+ l_free(response);
if (!ok)
goto error;
@@ -240,7 +238,7 @@
return;
error:
- g_free(response);
+ l_free(response);
CALLBACK_WITH_FAILURE(cb, -1, -1, -1, NULL,
EF_STATUS_INVALIDATED, cbd->data);
}
@@ -291,7 +289,7 @@
if (len == 0)
return NULL;
- return encode_hex(comm_path, len, 0);
+ return l_util_hexstring(comm_path, len);
}
static void ril_sim_read_info(struct ofono_sim *sim, int fileid,
@@ -346,7 +344,7 @@
"0,0,15,(null),pin2=(null),aid=%s)",
CMD_GET_RESPONSE, fileid, hex_path,
sd->aid_str);
- g_free(hex_path);
+ l_free(hex_path);
if (g_ril_send(sd->ril, RIL_REQUEST_SIM_IO, &rilp,
ril_file_info_cb, cbd, g_free) > 0)
@@ -366,7 +364,7 @@
int sw1, sw2;
char *hex_response;
unsigned char *response = NULL;
- long len;
+ size_t len;
if (message->error != RIL_E_SUCCESS) {
ofono_error("RILD reply failure: %s",
@@ -380,7 +378,7 @@
if (hex_response == NULL)
goto error;
- response = decode_hex(hex_response, -1, &len, -1);
+ response = l_util_from_hexstring(hex_response, &len);
g_free(hex_response);
hex_response = NULL;
@@ -390,11 +388,11 @@
}
CALLBACK_WITH_SUCCESS(cb, response, len, cbd->data);
- g_free(response);
+ l_free(response);
return;
error:
- g_free(response);
+ l_free(response);
CALLBACK_WITH_FAILURE(cb, NULL, 0, cbd->data);
}
@@ -477,7 +475,7 @@
CMD_READ_BINARY, fileid, hex_path,
start >> 8, start & 0xff,
length, sd->aid_str);
- g_free(hex_path);
+ l_free(hex_path);
if (g_ril_send(sd->ril, RIL_REQUEST_SIM_IO, &rilp,
ril_file_io_cb, cbd, g_free) > 0)
@@ -527,7 +525,7 @@
"%d,%d,%d,(null),pin2=(null),aid=%s)",
CMD_READ_RECORD, fileid, hex_path,
record, 4, length, sd->aid_str);
- g_free(hex_path);
+ l_free(hex_path);
if (g_ril_send(sd->ril, RIL_REQUEST_SIM_IO, &rilp,
ril_file_io_cb, cbd, g_free) > 0)
@@ -563,7 +561,7 @@
p1 = start >> 8;
p2 = start & 0xff;
- hex_data = encode_hex(value, length, 0);
+ hex_data = l_util_hexstring(value, length);
parcel_init(&rilp);
parcel_w_int32(&rilp, CMD_UPDATE_BINARY);
@@ -584,8 +582,8 @@
"%d,%d,%d,%s,pin2=(null),aid=%s),",
CMD_UPDATE_BINARY, fileid, hex_path,
p1, p2, length, hex_data, sd->aid_str);
- g_free(hex_path);
- g_free(hex_data);
+ l_free(hex_path);
+ l_free(hex_data);
if (g_ril_send(sd->ril, RIL_REQUEST_SIM_IO, &rilp,
ril_file_write_cb, cbd, g_free) > 0)
@@ -619,7 +617,7 @@
goto error;
}
- hex_data = encode_hex(value, length, 0);
+ hex_data = l_util_hexstring(value, length);
parcel_init(&rilp);
parcel_w_int32(&rilp, CMD_UPDATE_RECORD);
@@ -641,8 +639,8 @@
CMD_UPDATE_RECORD, fileid, hex_path,
record, access_mode, length, hex_data,
sd->aid_str);
- g_free(hex_path);
- g_free(hex_data);
+ l_free(hex_path);
+ l_free(hex_data);
if (g_ril_send(sd->ril, RIL_REQUEST_SIM_IO, &rilp,
ril_file_write_cb, cbd, g_free) > 0)
@@ -951,10 +949,10 @@
goto error;
}
- hex_dump = encode_hex((unsigned char *) data, len, '\0');
+ hex_dump = l_util_hexstring((const unsigned char *) data, len);
g_ril_append_print_buf(sd->ril, "{%d,%s}", len, hex_dump);
g_ril_print_response(sd->ril, message);
- g_free(hex_dump);
+ l_free(hex_dump);
expected = sizeof(int32_t) * 5;
if (len < expected) {
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/rilmodem/stk.c
^
|
@@ -27,6 +27,7 @@
#include <stdio.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/log.h>
#include <ofono/modem.h>
@@ -94,20 +95,21 @@
struct stk_data *sd = cbd->user;
struct parcel rilp;
unsigned char *response = NULL;
- long len = 0;
- char *pdu;
g_ril_print_response(sd->ril, message);
if (message->error == RIL_E_SUCCESS) {
+ char *pdu;
+ size_t len;
+
g_ril_init_parcel(message, &rilp);
pdu = parcel_r_string(&rilp);
if (pdu)
- response = decode_hex(pdu, -1, &len, -1);
+ response = l_util_from_hexstring(pdu, &len);
CALLBACK_WITH_SUCCESS(cb, response, len, cbd->data);
- g_free(response);
+ l_free(response);
} else {
ofono_error("%s RILD reply failure: %s",
g_ril_request_id_to_string(sd->ril, message->req),
@@ -145,32 +147,32 @@
{
struct ofono_stk *stk = user_data;
struct parcel rilp;
- long pdulen;
+ size_t pdulen;
unsigned char *pdu;
DBG("");
g_ril_init_parcel(message, &rilp);
- pdu = decode_hex(parcel_r_string(&rilp), -1, &pdulen, -1);
+ pdu = l_util_from_hexstring(parcel_r_string(&rilp), &pdulen);
ofono_stk_proactive_command_notify(stk, pdulen, pdu);
- g_free(pdu);
+ l_free(pdu);
}
static void ril_stk_event_notify(struct ril_msg *message, gpointer user_data)
{
struct ofono_stk *stk = user_data;
struct parcel rilp;
- long pdulen;
+ size_t pdulen;
unsigned char *pdu;
DBG("");
g_ril_init_parcel(message, &rilp);
- pdu = decode_hex(parcel_r_string(&rilp), -1, &pdulen, -1);
+ pdu = l_util_from_hexstring(parcel_r_string(&rilp), &pdulen);
ofono_stk_proactive_command_handled_notify(stk, pdulen, pdu);
- g_free(pdu);
+ l_free(pdu);
}
static void ril_stk_session_end_notify(struct ril_msg *message,
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/drivers/speedupmodem/ussd.c
^
|
@@ -98,7 +98,7 @@
cbd->user = ussd;
- unpack_7bit_own_buf(pdu, len, 0, TRUE, sizeof(coded_buf),
+ unpack_7bit_own_buf(pdu, len, 0, true, sizeof(coded_buf),
&written, 0, (unsigned char *)coded_buf);
if (written < 1)
goto error;
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/plugins/gemalto.c
^
|
@@ -573,9 +573,6 @@
ofono_devinfo_create(modem, 0, "atmodem", data->app);
ofono_location_reporting_create(modem, 0, "gemaltomodem", data->app);
- ofono_modem_set_integer(modem, "GemaltoVtsQuotes", 1);
- ofono_voicecall_create(modem, 0, "gemaltomodem", data->app);
-
data->sim = ofono_sim_create(modem, OFONO_VENDOR_GEMALTO, "atmodem",
data->app);
@@ -604,11 +601,6 @@
ofono_ussd_create(modem, 0, "atmodem", data->app);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->app);
- ofono_call_settings_create(modem, 0, "atmodem", data->app);
- ofono_call_meter_create(modem, 0, "atmodem", data->app);
- ofono_call_barring_create(modem, 0, "atmodem", data->app);
-
if (!g_strcmp0(model, GEMALTO_MODEL_ALS3_PLS8x))
ofono_lte_create(modem, OFONO_VENDOR_GEMALTO,
"atmodem", data->app);
@@ -621,6 +613,14 @@
DBG("%p", modem);
ofono_netreg_create(modem, OFONO_VENDOR_GEMALTO, "atmodem", data->app);
+
+ ofono_modem_set_integer(modem, "GemaltoVtsQuotes", 1);
+ ofono_voicecall_create(modem, 0, "gemaltomodem", data->app);
+
+ ofono_call_forwarding_create(modem, 0, "atmodem", data->app);
+ ofono_call_settings_create(modem, 0, "atmodem", data->app);
+ ofono_call_meter_create(modem, 0, "atmodem", data->app);
+ ofono_call_barring_create(modem, 0, "atmodem", data->app);
}
static struct ofono_modem_driver gemalto_driver = {
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/gprs.c
^
|
@@ -36,6 +36,7 @@
#include <arpa/inet.h>
#include <stdbool.h>
+#include <ell/ell.h>
#include <glib.h>
#include <gdbus.h>
@@ -43,7 +44,6 @@
#include "common.h"
#include "storage.h"
-#include "idmap.h"
#include "simutil.h"
#include "util.h"
@@ -70,9 +70,9 @@
int flags;
int bearer;
guint suspend_timeout;
- struct idmap *pid_map;
+ struct l_uintset *used_pids;
unsigned int last_context_id;
- struct idmap *cid_map;
+ struct l_uintset *used_cids;
int netreg_status;
struct ofono_netreg *netreg;
unsigned int netreg_watch;
@@ -223,43 +223,23 @@
return FALSE;
}
-static unsigned int gprs_cid_alloc(struct ofono_gprs *gprs)
+static gboolean assign_context(struct pri_context *ctx, unsigned int use_cid)
{
- return idmap_alloc(gprs->cid_map);
-}
-
-static void gprs_cid_take(struct ofono_gprs *gprs, unsigned int id)
-{
- idmap_take(gprs->cid_map, id);
-}
-
-static void gprs_cid_release(struct ofono_gprs *gprs, unsigned int id)
-{
- idmap_put(gprs->cid_map, id);
-}
-
-static gboolean gprs_cid_taken(struct ofono_gprs *gprs, unsigned int id)
-{
- return idmap_find(gprs->cid_map, id) != 0;
-}
-
-static gboolean assign_context(struct pri_context *ctx, int use_cid)
-{
- struct idmap *cidmap = ctx->gprs->cid_map;
+ struct l_uintset *used_cids = ctx->gprs->used_cids;
GSList *l;
- if (cidmap == NULL)
+ if (used_cids == NULL)
return FALSE;
- if (use_cid > 0) {
- gprs_cid_take(ctx->gprs, use_cid);
- ctx->context.cid = use_cid;
- } else
- ctx->context.cid = gprs_cid_alloc(ctx->gprs);
+ if (!use_cid)
+ use_cid = l_uintset_find_unused_min(used_cids);
- if (ctx->context.cid > idmap_get_max(cidmap))
+ if (use_cid > l_uintset_get_max(used_cids))
return FALSE;
+ l_uintset_put(used_cids, use_cid);
+ ctx->context.cid = use_cid;
+
for (l = ctx->gprs->context_drivers; l; l = l->next) {
struct ofono_gprs_context *gc = l->data;
@@ -299,7 +279,7 @@
if (ctx == NULL || ctx->gprs == NULL || ctx->context_driver == NULL)
return;
- gprs_cid_release(ctx->gprs, ctx->context.cid);
+ l_uintset_take(ctx->gprs->used_cids, ctx->context.cid);
ctx->context.cid = 0;
ctx->context_driver->inuse = FALSE;
ctx->context_driver = NULL;
@@ -1434,7 +1414,7 @@
context_methods, context_signals,
NULL, ctx, pri_context_destroy)) {
ofono_error("Could not register PrimaryContext %s", path);
- idmap_put(ctx->gprs->pid_map, ctx->id);
+ l_uintset_take(ctx->gprs->used_pids, ctx->id);
pri_context_destroy(ctx);
return FALSE;
@@ -1462,7 +1442,7 @@
}
strcpy(path, ctx->path);
- idmap_put(ctx->gprs->pid_map, ctx->id);
+ l_uintset_take(ctx->gprs->used_pids, ctx->id);
return g_dbus_unregister_interface(conn, path,
OFONO_CONNECTION_CONTEXT_INTERFACE);
@@ -1919,20 +1899,21 @@
struct pri_context *context;
if (gprs->last_context_id)
- id = idmap_alloc_next(gprs->pid_map, gprs->last_context_id);
+ id = l_uintset_find_unused(gprs->used_pids,
+ gprs->last_context_id);
else
- id = idmap_alloc(gprs->pid_map);
+ id = l_uintset_find_unused_min(gprs->used_pids);
- if (id > idmap_get_max(gprs->pid_map))
+ if (id > l_uintset_get_max(gprs->used_pids))
return NULL;
context = pri_context_create(gprs, name, type);
if (context == NULL) {
- idmap_put(gprs->pid_map, id);
ofono_error("Unable to allocate context struct");
return NULL;
}
+ l_uintset_put(gprs->used_pids, id);
context->id = id;
DBG("Registering new context");
@@ -1962,7 +1943,7 @@
DBG("");
- if (gprs_cid_taken(gprs, cid)) {
+ if (l_uintset_contains(gprs->used_cids, cid)) {
DBG("cid %u already activated", cid);
return;
}
@@ -2353,20 +2334,15 @@
strlen(ap->message_center) > MAX_MESSAGE_CENTER_LENGTH)
return;
- if (gprs->last_context_id)
- id = idmap_alloc_next(gprs->pid_map, gprs->last_context_id);
- else
- id = idmap_alloc(gprs->pid_map);
-
- if (id > idmap_get_max(gprs->pid_map))
+ id = l_uintset_find_unused(gprs->used_pids, gprs->last_context_id);
+ if (id > l_uintset_get_max(gprs->used_pids))
return;
context = pri_context_create(gprs, ap->name, ap->type);
- if (context == NULL) {
- idmap_put(gprs->pid_map, id);
+ if (context == NULL)
return;
- }
+ l_uintset_put(gprs->used_pids, id);
context->id = id;
if (ap->username != NULL)
@@ -2600,10 +2576,8 @@
if (gprs == NULL)
return;
- if (gprs->cid_map)
- idmap_free(gprs->cid_map);
-
- gprs->cid_map = idmap_new_from_range(min, max);
+ l_uintset_free(gprs->used_cids);
+ gprs->used_cids = l_uintset_new_from_range(min, max);
}
static void gprs_context_unregister(struct ofono_atom *atom)
@@ -3010,10 +2984,8 @@
free_contexts(gprs);
- if (gprs->cid_map) {
- idmap_free(gprs->cid_map);
- gprs->cid_map = NULL;
- }
+ l_uintset_free(gprs->used_cids);
+ gprs->used_cids = NULL;
if (gprs->netreg_watch) {
if (gprs->status_watch) {
@@ -3053,10 +3025,8 @@
if (gprs->suspend_timeout)
g_source_remove(gprs->suspend_timeout);
- if (gprs->pid_map) {
- idmap_free(gprs->pid_map);
- gprs->pid_map = NULL;
- }
+ l_uintset_free(gprs->used_pids);
+ gprs->used_pids = NULL;
for (l = gprs->context_drivers; l; l = l->next) {
struct ofono_gprs_context *gc = l->data;
@@ -3104,7 +3074,7 @@
gprs->status = NETWORK_REGISTRATION_STATUS_UNKNOWN;
gprs->netreg_status = NETWORK_REGISTRATION_STATUS_UNKNOWN;
- gprs->pid_map = idmap_new(MAX_CONTEXTS);
+ gprs->used_pids = l_uintset_new(MAX_CONTEXTS);
return gprs;
}
@@ -3224,7 +3194,7 @@
if (context == NULL)
goto error;
- idmap_take(gprs->pid_map, id);
+ l_uintset_put(gprs->used_pids, id);
context->id = id;
strcpy(context->context.username, username);
strcpy(context->context.password, password);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/ofono.h
^
|
@@ -20,6 +20,7 @@
*/
#include <glib.h>
+#include <ell/ell.h>
#define OFONO_API_SUBJECT_TO_CHANGE
@@ -387,9 +388,8 @@
ofono_bool_t __ofono_is_valid_net_pin(const char *pin);
-void __ofono_sim_refresh(struct ofono_sim *sim, GSList *file_list,
- ofono_bool_t full_file_change,
- ofono_bool_t naa_init);
+void __ofono_sim_refresh(struct ofono_sim *sim, struct l_queue *file_list,
+ bool full_file_change, bool naa_init);
void __ofono_sim_recheck_pin(struct ofono_sim *sim);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/sim.c
^
|
@@ -36,6 +36,8 @@
#include <errno.h>
#include <unistd.h>
+#include <ell/ell.h>
+
#include "ofono.h"
#include "common.h"
@@ -349,8 +351,8 @@
static void service_number_free(gpointer pointer)
{
struct service_number *num = pointer;
- g_free(num->id);
- g_free(num);
+ l_free(num->id);
+ l_free(num);
}
static void call_state_watches(struct ofono_sim *sim)
@@ -927,7 +929,7 @@
if (cache)
sim_fs_cache_image(sim->simfs, (const char *) xpm, id);
- g_free(xpm);
+ l_free(xpm);
}
static void sim_iidf_read_clut_cb(int ok, int length, int record,
@@ -1285,27 +1287,26 @@
if (sim_adn_parse(data, record_length, &ph, &alpha) == FALSE)
goto out;
-
/* Use phone number if Id is unavailable */
if (alpha && alpha[0] == '\0') {
- g_free(alpha);
+ l_free(alpha);
alpha = NULL;
}
if (alpha == NULL)
- alpha = g_strdup(phone_number_to_string(&ph));
+ alpha = l_strdup(phone_number_to_string(&ph));
if (sim->service_numbers &&
g_slist_find_custom(sim->service_numbers,
alpha, service_number_compare)) {
ofono_error("Duplicate EFsdn entries for `%s'",
alpha);
- g_free(alpha);
+ l_free(alpha);
goto out;
}
- sdn = g_new(struct service_number, 1);
+ sdn = l_new(struct service_number, 1);
sdn->id = alpha;
memcpy(&sdn->ph, &ph, sizeof(struct ofono_phone_number));
@@ -2512,10 +2513,10 @@
sim->reading_spn = false;
- g_free(sim->spn);
+ l_free(sim->spn);
sim->spn = NULL;
- g_free(sim->spn_dc);
+ l_free(sim->spn_dc);
sim->spn_dc = NULL;
}
@@ -2829,10 +2830,10 @@
DBusConnection *conn = ofono_dbus_get_connection();
const char *path = __ofono_atom_get_path(sim->atom);
- g_free(sim->spn);
+ l_free(sim->spn);
sim->spn = NULL;
- g_free(sim->spn_dc);
+ l_free(sim->spn_dc);
sim->spn_dc = NULL;
if (data == NULL)
@@ -2861,13 +2862,13 @@
}
if (strlen(sim->spn) == 0) {
- g_free(sim->spn);
+ l_free(sim->spn);
sim->spn = NULL;
goto notify;
}
if (dc)
- sim->spn_dc = g_memdup(dc, 1);
+ sim->spn_dc = l_memdup(dc, 1);
notify:
if (sim->spn)
@@ -3399,17 +3400,17 @@
sim_fs_cache_flush_file(sim->simfs, id);
}
-void __ofono_sim_refresh(struct ofono_sim *sim, GSList *file_list,
- ofono_bool_t full_file_change, ofono_bool_t naa_init)
+void __ofono_sim_refresh(struct ofono_sim *sim, struct l_queue *files,
+ bool full_file_change, bool naa_init)
{
- GSList *l;
- gboolean reinit_naa = naa_init || full_file_change;
+ const struct l_queue_entry *l;
+ bool reinit_naa = naa_init || full_file_change;
/*
* Check if any files used in SIM initialisation procedure
* are affected, except EFiccid, EFpl, EFli.
*/
- for (l = file_list; l; l = l->next) {
+ for (l = l_queue_get_entries(files); l; l = l->next) {
struct stk_file *file = l->data;
uint32_t mf, df, ef;
@@ -3450,7 +3451,7 @@
if (full_file_change)
sim_fs_cache_flush(sim->simfs);
else {
- for (l = file_list; l; l = l->next) {
+ for (l = l_queue_get_entries(files); l; l = l->next) {
struct stk_file *file = l->data;
int id = (file->file[file->len - 2] << 8) |
(file->file[file->len - 1] << 0);
@@ -3475,7 +3476,7 @@
if (full_file_change)
sim_fs_notify_file_watches(sim->simfs, -1);
else {
- for (l = file_list; l; l = l->next) {
+ for (l = l_queue_get_entries(files); l; l = l->next) {
struct stk_file *file = l->data;
int id = (file->file[file->len - 2] << 8) |
(file->file[file->len - 1] << 0);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/simutil.c
^
|
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/types.h>
#include "simutil.h"
@@ -793,14 +794,14 @@
spare_bits = dcs & 0x07;
num_char = (length * 8 - spare_bits) / 7;
- unpacked_buf = unpack_7bit(buffer, length, 0, FALSE,
+ unpacked_buf = unpack_7bit(buffer, length, 0, false,
num_char, &written, 0);
if (unpacked_buf == NULL)
break;
ret = convert_gsm_to_utf8(unpacked_buf, written, NULL, NULL, 0);
- g_free(unpacked_buf);
+ l_free(unpacked_buf);
break;
case 0x10:
@@ -815,9 +816,7 @@
if (buffer[i] == 0xff && buffer[i + 1] == 0xff)
break;
- ret = g_convert((const char *) buffer, length,
- "UTF-8//TRANSLIT", "UCS-2BE",
- NULL, NULL, NULL);
+ ret = l_utf8_from_ucs2be(buffer, length);
break;
}
@@ -989,9 +988,9 @@
if (oper == NULL)
return;
- g_free(oper->info);
- g_free(oper->shortname);
- g_free(oper->longname);
+ l_free(oper->info);
+ l_free(oper->shortname);
+ l_free(oper->longname);
}
struct sim_eons *sim_eons_new(int pnn_records)
@@ -1551,7 +1550,7 @@
void sim_app_record_free(struct sim_app_record *app)
{
- g_free(app->label);
+ l_free(app->label);
g_free(app);
}
@@ -1606,7 +1605,7 @@
GSList *t = ret;
struct sim_app_record *app = ret->data;
- g_free(app->label);
+ l_free(app->label);
g_free(app);
ret = ret->next;
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/smsutil.c
^
|
@@ -33,6 +33,7 @@
#include <unistd.h>
#include <glib.h>
+#include <ell/ell.h>
#include "util.h"
#include "storage.h"
@@ -556,13 +557,13 @@
return FALSE;
if (written > 11) {
- g_free(gsm);
+ l_free(gsm);
return FALSE;
}
- r = pack_7bit_own_buf(gsm, written, 0, FALSE, &packed, 0, p);
+ r = pack_7bit_own_buf(gsm, written, 0, false, &packed, 0, p);
- g_free(gsm);
+ l_free(gsm);
if (r == NULL)
return FALSE;
@@ -667,7 +668,7 @@
return TRUE;
}
- res = unpack_7bit(pdu + *offset, byte_len, 0, FALSE, chars,
+ res = unpack_7bit(pdu + *offset, byte_len, 0, false, chars,
&written, 0);
*offset = *offset + (addr_len + 1) / 2;
@@ -676,10 +677,9 @@
return FALSE;
utf8 = convert_gsm_to_utf8(res, written, NULL, NULL, 0);
+ l_free(res);
- g_free(res);
-
- if (utf8 == NULL)
+ if (!utf8)
return FALSE;
/*
@@ -687,13 +687,12 @@
* 22 bytes+terminator in UTF-8.
*/
if (strlen(utf8) > 22) {
- g_free(utf8);
+ l_free(utf8);
return FALSE;
}
strcpy(out->address, utf8);
-
- g_free(utf8);
+ l_free(utf8);
}
return TRUE;
@@ -1330,7 +1329,7 @@
if ((len - offset) < out->submit.udl)
return FALSE;
- pack_7bit_own_buf(pdu + offset, out->submit.udl, 0, FALSE,
+ pack_7bit_own_buf(pdu + offset, out->submit.udl, 0, false,
NULL, 0, out->submit.ud);
return TRUE;
@@ -2218,7 +2217,8 @@
const struct sms *sms;
int guess_size = g_slist_length(sms_list);
char *utf8;
- GByteArray *utf16 = 0;
+ void *utf16 = NULL;
+ size_t utf16_size = 0;
if (guess_size == 1)
guess_size = 160;
@@ -2265,7 +2265,7 @@
if (unpack_7bit_own_buf(ud + taken,
udl_in_bytes - taken,
- taken, FALSE, max_chars,
+ taken, false, max_chars,
&written, 0, buf) == NULL)
continue;
@@ -2292,7 +2292,7 @@
single_shift);
if (converted) {
g_string_append(str, converted);
- g_free(converted);
+ l_free(converted);
}
} else {
const guint8 *from = ud + taken;
@@ -2302,7 +2302,7 @@
* Header is odd, the maximum length of the whole TP-UD
* field is 139 octets
*/
- gssize num_ucs2_chars = (udl_in_bytes - taken) >> 1;
+ size_t num_ucs2_chars = (udl_in_bytes - taken) >> 1;
num_ucs2_chars = num_ucs2_chars << 1;
/*
@@ -2313,25 +2313,32 @@
* character in the middle. So accumulate the
* entire message before converting to UTF-8.
*/
- if (!utf16)
- utf16 = g_byte_array_new();
-
- g_byte_array_append(utf16, from, num_ucs2_chars);
+ utf16 = l_realloc(utf16, utf16_size + num_ucs2_chars);
+ memcpy(utf16 + utf16_size, from, num_ucs2_chars);
+ utf16_size += num_ucs2_chars;
}
}
if (utf16) {
- char *converted = g_convert_with_fallback((const gchar *)
- utf16->data, utf16->len,
- "UTF-8//TRANSLIT", "UTF-16BE",
- NULL, NULL, NULL, NULL);
+ char *converted;
+
+ /* Strings are in UTF16-BE, so convert if needed */
+ if (L_CPU_TO_BE16(0x8000) != 0x8000) {
+ size_t i;
+ uint16_t *p = utf16;
+
+ for (i = 0; i < utf16_size / 2; i++)
+ p[i] = __builtin_bswap16(p[i]);
+ }
+
+ converted = l_utf8_from_utf16(utf16, utf16_size);
if (converted) {
g_string_append(str, converted);
- g_free(converted);
+ l_free(converted);
}
- g_byte_array_free(utf16, TRUE);
+ l_free(utf16);
}
utf8 = g_string_free(str, FALSE);
@@ -3561,7 +3568,7 @@
struct sms template;
int offset = 0;
unsigned char *gsm_encoded = NULL;
- char *ucs2_encoded = NULL;
+ void *ucs2_encoded = NULL;
long written;
long left;
guint8 seq;
@@ -3586,16 +3593,15 @@
gsm_encoded = convert_utf8_to_gsm_best_lang(utf8, -1, NULL, &written, 0,
alphabet, &used_locking,
&used_single);
- if (gsm_encoded == NULL) {
- gsize converted;
+ if (!gsm_encoded) {
+ size_t converted;
- ucs2_encoded = g_convert(utf8, -1, "UCS-2BE//TRANSLIT", "UTF-8",
- NULL, &converted, NULL);
- written = converted;
- }
+ ucs2_encoded = l_utf8_to_ucs2be(utf8, &converted);
+ if (!ucs2_encoded)
+ return NULL;
- if (gsm_encoded == NULL && ucs2_encoded == NULL)
- return NULL;
+ written = converted - 2;
+ }
if (gsm_encoded != NULL)
template.submit.dcs = 0x00; /* Class Unspecified, 7 Bit */
@@ -3629,10 +3635,10 @@
if (gsm_encoded && (written <= sms_text_capacity_gsm(160, offset))) {
template.submit.udl = written + (offset * 8 + 6) / 7;
- pack_7bit_own_buf(gsm_encoded, written, offset, FALSE, NULL,
+ pack_7bit_own_buf(gsm_encoded, written, offset, false, NULL,
0, template.submit.ud + offset);
- g_free(gsm_encoded);
+ l_free(gsm_encoded);
return sms_list_append(NULL, &template);
}
@@ -3640,7 +3646,7 @@
template.submit.udl = written + offset;
memcpy(template.submit.ud + offset, ucs2_encoded, written);
- g_free(ucs2_encoded);
+ l_free(ucs2_encoded);
return sms_list_append(NULL, &template);
}
@@ -3686,7 +3692,7 @@
template.submit.udl = chunk + (offset * 8 + 6) / 7;
pack_7bit_own_buf(gsm_encoded + written, chunk,
- offset, FALSE, NULL, 0,
+ offset, false, NULL, 0,
template.submit.ud + offset);
} else {
chunk = 140 - offset;
@@ -3715,7 +3721,7 @@
g_free(gsm_encoded);
if (ucs2_encoded)
- g_free(ucs2_encoded);
+ l_free(ucs2_encoded);
if (left > 0) {
g_slist_free_full(r, g_free);
@@ -4090,7 +4096,7 @@
taken = sms_udh_iter_get_udh_length(&iter) + 1;
unpack_7bit_own_buf(cbs->ud + taken, 82 - taken,
- taken, FALSE, 2,
+ taken, false, 2,
NULL, 0,
(unsigned char *)iso639_lang);
iso639_lang[2] = '\0';
@@ -4099,7 +4105,7 @@
}
}
- buf = g_new(unsigned char, bufsize);
+ buf = l_new(unsigned char, bufsize);
bufsize = 0;
for (l = cbs_list; l; l = l->next) {
@@ -4123,7 +4129,7 @@
sms_text_capacity_gsm(CBS_MAX_GSM_CHARS, taken);
unpack_7bit_own_buf(ud + taken, 82 - taken,
- taken, FALSE, max_chars,
+ taken, false, max_chars,
&written, 0, unpacked);
i = iso639 ? 3 : 0;
@@ -4195,10 +4201,9 @@
if (charset == SMS_CHARSET_7BIT)
utf8 = convert_gsm_to_utf8(buf, bufsize, NULL, NULL, 0);
else
- utf8 = g_convert((char *) buf, bufsize, "UTF-8//TRANSLIT",
- "UCS-2BE", NULL, NULL, NULL);
+ utf8 = l_utf8_from_ucs2be(buf, bufsize);
- g_free(buf);
+ l_free(buf);
return utf8;
}
@@ -4730,13 +4735,13 @@
case SMS_CHARSET_7BIT:
{
long written;
- unsigned char *unpacked = unpack_7bit(data, len, 0, TRUE, 0,
+ unsigned char *unpacked = unpack_7bit(data, len, 0, true, 0,
&written, 0);
if (unpacked == NULL)
return NULL;
utf8 = convert_gsm_to_utf8(unpacked, written, NULL, NULL, 0);
- g_free(unpacked);
+ l_free(unpacked);
break;
}
@@ -4766,12 +4771,12 @@
converted = convert_utf8_to_gsm(str, -1, NULL, &written, 0);
if (converted == NULL || written > 182) {
- g_free(converted);
+ l_free(converted);
return FALSE;
}
- pack_7bit_own_buf(converted, written, 0, TRUE, &num_packed, 0, pdu);
- g_free(converted);
+ pack_7bit_own_buf(converted, written, 0, true, &num_packed, 0, pdu);
+ l_free(converted);
if (num_packed < 1)
return FALSE;
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/stk.c
^
|
@@ -34,6 +34,8 @@
#include <time.h>
#include <sys/time.h>
+#include <ell/ell.h>
+
#include "ofono.h"
#include "common.h"
@@ -343,15 +345,15 @@
}
static struct stk_menu *stk_menu_create(const char *title,
- const struct stk_text_attribute *title_attr,
- const struct stk_icon_id *icon, GSList *items,
- const struct stk_item_text_attribute_list *item_attrs,
- const struct stk_item_icon_id_list *item_icon_ids,
- int default_id, gboolean soft_key, gboolean has_help)
+ const struct stk_text_attribute *title_attr,
+ const struct stk_icon_id *icon, struct l_queue *items,
+ const struct stk_item_text_attribute_list *item_attrs,
+ const struct stk_item_icon_id_list *item_icon_ids,
+ int default_id, bool soft_key, bool has_help)
{
- unsigned int len = g_slist_length(items);
+ unsigned int len = l_queue_length(items);
struct stk_menu *ret;
- GSList *l;
+ const struct l_queue_entry *entry;
int i;
struct stk_text_attribute attr;
@@ -363,23 +365,22 @@
if (item_icon_ids && item_icon_ids->len && item_icon_ids->len != len)
return NULL;
- ret = g_try_new(struct stk_menu, 1);
- if (ret == NULL)
- return NULL;
+ ret = l_new(struct stk_menu, 1);
ret->title = dbus_apply_text_attributes(title ? title : "",
title_attr);
if (ret->title == NULL)
- ret->title = g_strdup(title ? title : "");
+ ret->title = l_strdup(title ? title : "");
memcpy(&ret->icon, icon, sizeof(ret->icon));
- ret->items = g_new0(struct stk_menu_item, len + 1);
+ ret->items = l_new(struct stk_menu_item, len + 1);
ret->default_item = -1;
ret->soft_key = soft_key;
ret->has_help = has_help;
- for (l = items, i = 0; l; l = l->next, i++) {
- struct stk_item *item = l->data;
+ for (entry = l_queue_get_entries(items), i = 0;
+ entry; entry = entry->next, i++) {
+ struct stk_item *item = entry->data;
char *text;
ret->items[i].item_id = item->id;
@@ -394,7 +395,7 @@
}
if (text == NULL)
- text = strdup(item->text);
+ text = l_strdup(item->text);
ret->items[i].text = text;
@@ -416,8 +417,8 @@
static struct stk_menu *stk_menu_create_from_set_up_menu(
const struct stk_command *cmd)
{
- gboolean soft_key = (cmd->qualifier & (1 << 0)) != 0;
- gboolean has_help = (cmd->qualifier & (1 << 7)) != 0;
+ bool soft_key = (cmd->qualifier & (1 << 0)) != 0;
+ bool has_help = (cmd->qualifier & (1 << 7)) != 0;
return stk_menu_create(cmd->setup_menu.alpha_id,
&cmd->setup_menu.text_attr,
@@ -431,8 +432,8 @@
static struct stk_menu *stk_menu_create_from_select_item(
const struct stk_command *cmd)
{
- gboolean soft_key = (cmd->qualifier & (1 << 2)) != 0;
- gboolean has_help = (cmd->qualifier & (1 << 7)) != 0;
+ bool soft_key = (cmd->qualifier & (1 << 2)) != 0;
+ bool has_help = (cmd->qualifier & (1 << 7)) != 0;
return stk_menu_create(cmd->select_item.alpha_id,
&cmd->select_item.text_attr,
@@ -448,11 +449,11 @@
struct stk_menu_item *i;
for (i = menu->items; i->text; i++)
- g_free(i->text);
+ l_free(i->text);
- g_free(menu->items);
- g_free(menu->title);
- g_free(menu);
+ l_free(menu->items);
+ l_free(menu->title);
+ l_free(menu);
}
static void emit_menu_changed(struct ofono_stk *stk)
@@ -461,7 +462,7 @@
static struct stk_menu no_menu = {
.title = "",
.items = &end_item,
- .has_help = FALSE,
+ .has_help = false,
.default_item = -1,
};
static char *name = "MainMenu";
@@ -561,7 +562,7 @@
else
stk_agent_display_action_info(stk->current_agent, alpha, icon);
- g_free(alpha);
+ l_free(alpha);
return TRUE;
}
@@ -986,7 +987,7 @@
}
if (stk->idle_mode_text)
- g_free(stk->idle_mode_text);
+ l_free(stk->idle_mode_text);
if (sim->icon_id.id != 0 && sim->icon_id.qualifier ==
STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY)
@@ -1040,7 +1041,7 @@
static void timer_value_from_seconds(struct stk_timer_value *val, int seconds)
{
- val->has_value = TRUE;
+ val->has_value = true;
val->hour = seconds / 3600;
seconds -= val->hour * 3600;
val->minute = seconds / 60;
@@ -1403,7 +1404,7 @@
err = stk_agent_display_text(stk->current_agent, text, &dt->icon_id,
priority, display_text_cb, stk,
display_text_destroy, timeout);
- g_free(text);
+ l_free(text);
/* We most likely got an out of memory error, tell SIM to retry */
if (err < 0) {
@@ -1454,8 +1455,7 @@
}
static void request_confirmation_cb(enum stk_agent_result result,
- gboolean confirm,
- void *user_data)
+ bool confirm, void *user_data)
{
struct ofono_stk *stk = user_data;
static struct ofono_error error = { .type = OFONO_ERROR_TYPE_FAILURE };
@@ -1468,7 +1468,7 @@
rsp.result.type = STK_RESULT_TYPE_SUCCESS;
rsp.get_inkey.text.text = confirm ? "" : NULL;
- rsp.get_inkey.text.yesno = TRUE;
+ rsp.get_inkey.text.yesno = true;
if (cmd->duration.interval) {
rsp.get_inkey.duration.unit = cmd->duration.unit;
@@ -1610,7 +1610,7 @@
&gi->icon_id, request_key_cb,
stk, NULL, timeout);
- g_free(text);
+ l_free(text);
if (err < 0) {
unsigned char no_cause_result[] = { 0x00 };
@@ -1704,7 +1704,7 @@
request_string_cb,
stk, NULL, timeout);
- g_free(text);
+ l_free(text);
if (err < 0) {
unsigned char no_cause_result[] = { 0x00 };
@@ -1761,7 +1761,7 @@
__ofono_voicecall_dial_cancel(vc);
}
-static void confirm_call_cb(enum stk_agent_result result, gboolean confirm,
+static void confirm_call_cb(enum stk_agent_result result, bool confirm,
void *user_data)
{
struct ofono_stk *stk = user_data;
@@ -1779,7 +1779,7 @@
switch (result) {
case STK_AGENT_RESULT_TIMEOUT:
- confirm = FALSE;
+ confirm = false;
/* Fall through */
case STK_AGENT_RESULT_OK:
@@ -1829,7 +1829,7 @@
alpha_id, sc->icon_id_call_setup.id,
qualifier >> 1, call_setup_connected,
stk);
- g_free(alpha_id);
+ l_free(alpha_id);
if (err >= 0) {
stk->cancel_cmd = call_setup_cancel;
@@ -1865,7 +1865,7 @@
}
static void confirm_handled_call_cb(enum stk_agent_result result,
- gboolean confirm, void *user_data)
+ bool confirm, void *user_data)
{
struct ofono_stk *stk = user_data;
const struct stk_command_setup_call *sc =
@@ -1961,7 +1961,7 @@
err = stk_agent_confirm_call(stk->current_agent, alpha_id,
&sc->icon_id_usr_cfm, confirm_call_cb,
stk, NULL, stk->timeout * 1000);
- g_free(alpha_id);
+ l_free(alpha_id);
if (err < 0) {
unsigned char no_cause_result[] = { 0x00 };
@@ -2020,7 +2020,7 @@
rsp.result.type = STK_RESULT_TYPE_SUCCESS;
rsp.send_ussd.text.text = msg;
rsp.send_ussd.text.len = msg_len;
- rsp.send_ussd.text.has_text = TRUE;
+ rsp.send_ussd.text.has_text = true;
} else
rsp.result.type = STK_RESULT_TYPE_USSD_RETURN_ERROR;
@@ -2148,7 +2148,7 @@
static void free_idle_mode_text(struct ofono_stk *stk)
{
- g_free(stk->idle_mode_text);
+ l_free(stk->idle_mode_text);
stk->idle_mode_text = NULL;
memset(&stk->idle_mode_icon, 0, sizeof(stk->idle_mode_icon));
@@ -2164,7 +2164,7 @@
struct ofono_sim *sim;
uint8_t addnl_info[1];
int err;
- GSList *l;
+ const struct l_queue_entry *entry;
DBG("");
@@ -2208,8 +2208,9 @@
}
DBG("Files:");
- for (l = cmd->refresh.file_list; l; l = l->next) {
- struct stk_file *file = l->data;
+ for (entry = l_queue_get_entries(cmd->refresh.file_list);
+ entry; entry = entry->next) {
+ struct stk_file *file = entry->data;
char buf[17];
encode_hex_own_buf(file->file, file->len, 0, buf);
@@ -2273,7 +2274,8 @@
*/
if (cmd->qualifier < 4 || rsp == NULL) {
int qualifier = stk->pending_cmd->qualifier;
- GSList *file_list = stk->pending_cmd->refresh.file_list;
+ struct l_queue *file_list =
+ stk->pending_cmd->refresh.file_list;
/* Don't free the list yet */
stk->pending_cmd->refresh.file_list = NULL;
@@ -2316,7 +2318,7 @@
break;
}
- g_slist_free_full(file_list, g_free);
+ l_queue_destroy(file_list, l_free);
return FALSE;
}
@@ -2346,7 +2348,7 @@
rsp->provide_local_info.datetime.minute = t->tm_min;
rsp->provide_local_info.datetime.second = t->tm_sec;
rsp->provide_local_info.datetime.timezone = t->tm_gmtoff / 900;
- rsp->provide_local_info.datetime.has_timezone = TRUE;
+ rsp->provide_local_info.datetime.has_timezone = true;
return;
}
@@ -2662,7 +2664,7 @@
play_tone_cb, stk, NULL,
timeout);
- g_free(text);
+ l_free(text);
if (err < 0) {
unsigned char no_cause_result[] = { 0x00 };
@@ -2683,7 +2685,7 @@
}
static void confirm_launch_browser_cb(enum stk_agent_result result,
- gboolean confirm,
+ bool confirm,
void *user_data)
{
struct ofono_stk *stk = user_data;
@@ -2693,7 +2695,7 @@
switch (result) {
case STK_AGENT_RESULT_TIMEOUT:
- confirm = FALSE;
+ confirm = false;
/* Fall through */
case STK_AGENT_RESULT_OK:
@@ -2734,7 +2736,7 @@
lb->icon_id.id, lb->url,
confirm_launch_browser_cb,
stk, NULL, stk->timeout * 1000);
- g_free(alpha_id);
+ l_free(alpha_id);
if (err < 0) {
unsigned char no_cause_result[] = { 0x00 };
@@ -2785,7 +2787,7 @@
confirm_handled_call_cb,
stk, NULL,
stk->timeout * 1000);
- g_free(alpha_id);
+ l_free(alpha_id);
if (err < 0)
goto out;
@@ -3150,7 +3152,7 @@
stk->cancel_cmd = NULL;
}
- g_free(stk->idle_mode_text);
+ l_free(stk->idle_mode_text);
stk->idle_mode_text = NULL;
if (stk->timers_source) {
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/stkagent.c
^
|
@@ -29,6 +29,7 @@
#include <glib.h>
#include <gdbus.h>
+#include <ell/ell.h>
#include "ofono.h"
@@ -51,7 +52,7 @@
char *path; /* Agent Path */
char *bus; /* Agent bus */
guint disconnect_watch; /* DBus disconnect watch */
- ofono_bool_t remove_on_terminate;
+ bool remove_on_terminate;
ofono_destroy_func removed_cb;
void *removed_data;
DBusMessage *msg;
@@ -60,7 +61,7 @@
void *user_data;
int min_length;
int max_length;
- ofono_bool_t hidden_entry;
+ bool hidden_entry;
ofono_destroy_func user_destroy;
const struct stk_menu *request_selection_menu;
@@ -117,7 +118,7 @@
agent->user_cb = NULL;
}
-ofono_bool_t stk_agent_matches(struct stk_agent *agent,
+bool stk_agent_matches(struct stk_agent *agent,
const char *path, const char *sender)
{
return !strcmp(agent->path, path) && !strcmp(agent->bus, sender);
@@ -227,7 +228,7 @@
}
struct stk_agent *stk_agent_new(const char *path, const char *sender,
- ofono_bool_t remove_on_terminate)
+ bool remove_on_terminate)
{
struct stk_agent *agent = g_try_new0(struct stk_agent, 1);
DBusConnection *conn = ofono_dbus_get_connection();
@@ -287,9 +288,9 @@
done: \
if (result == STK_AGENT_RESULT_TERMINATE && \
agent->remove_on_terminate) \
- remove_agent = TRUE; \
+ remove_agent = true; \
else \
- remove_agent = FALSE; \
+ remove_agent = false; \
\
error: \
stk_agent_request_end(agent); \
@@ -306,12 +307,12 @@
DBusMessage *reply = dbus_pending_call_steal_reply(call);
unsigned char selection, i;
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
if (check_error(agent, reply,
ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE,
&result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -324,7 +325,7 @@
DBUS_TYPE_BYTE, &selection,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to RequestSelection()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -332,7 +333,7 @@
if (i != selection) {
ofono_error("Invalid item selected");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -387,12 +388,12 @@
stk_agent_display_text_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
if (check_error(agent, reply,
ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE |
ALLOWED_ERROR_BUSY, &result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -403,7 +404,7 @@
if (dbus_message_get_args(reply, NULL, DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to DisplayText()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -414,7 +415,7 @@
int stk_agent_display_text(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
- ofono_bool_t urgent,
+ bool urgent,
stk_agent_display_text_cb cb,
void *user_data, ofono_destroy_func destroy,
int timeout)
@@ -455,18 +456,18 @@
stk_agent_confirmation_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
dbus_bool_t confirm;
if (check_error(agent, reply,
ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE,
&result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
if (result != STK_AGENT_RESULT_OK) {
- cb(result, FALSE, agent->user_data);
+ cb(result, false, agent->user_data);
goto done;
}
@@ -474,7 +475,7 @@
DBUS_TYPE_BOOLEAN, &confirm,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to GetConfirmation()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -524,13 +525,13 @@
stk_agent_string_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
char *digit;
if (check_error(agent, reply,
ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE,
&result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -543,19 +544,19 @@
DBUS_TYPE_STRING, &digit,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to GetDigit()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
if (strlen(digit) != 1 || !strspn(digit, "0123456789*#+")) {
ofono_error("Invalid character");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
if (agent->hidden_entry && digit[0] == '+') {
ofono_error("The character + is not allowed in this mode");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -590,7 +591,7 @@
agent->user_cb = cb;
agent->user_data = user_data;
agent->user_destroy = destroy;
- agent->hidden_entry = FALSE;
+ agent->hidden_entry = false;
dbus_pending_call_set_notify(agent->call, get_digit_cb, agent, NULL);
@@ -623,7 +624,7 @@
agent->user_cb = cb;
agent->user_data = user_data;
agent->user_destroy = destroy;
- agent->hidden_entry = TRUE;
+ agent->hidden_entry = true;
dbus_pending_call_set_notify(agent->call, get_digit_cb, agent, NULL);
@@ -636,13 +637,13 @@
stk_agent_string_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
char *key;
if (check_error(agent, reply,
ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE,
&result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -656,7 +657,7 @@
DBUS_TYPE_INVALID) == FALSE ||
g_utf8_strlen(key, 10) != 1) {
ofono_error("Can't parse the reply to GetKey()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -667,7 +668,7 @@
int stk_agent_request_key(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
- ofono_bool_t unicode_charset,
+ bool unicode_charset,
stk_agent_string_cb cb, void *user_data,
ofono_destroy_func destroy, int timeout)
{
@@ -704,14 +705,14 @@
stk_agent_string_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
char *string;
int len, span;
if (check_error(agent, reply,
ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE,
&result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -724,7 +725,7 @@
DBUS_TYPE_STRING, &string,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to GetDigits()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -732,7 +733,7 @@
if (len < agent->min_length || len > agent->max_length) {
ofono_error("Length not acceptable");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -743,7 +744,7 @@
if (span != len) {
ofono_error("Invalid character found");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -755,7 +756,7 @@
int stk_agent_request_digits(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
const char *default_text,
- int min, int max, ofono_bool_t hidden,
+ int min, int max, bool hidden,
stk_agent_string_cb cb, void *user_data,
ofono_destroy_func destroy, int timeout)
{
@@ -805,14 +806,14 @@
stk_agent_string_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
char *string;
int len;
if (check_error(agent, reply,
ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE,
&result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -825,7 +826,7 @@
DBUS_TYPE_STRING, &string,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to GetInput()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -833,7 +834,7 @@
if (len < agent->min_length || len > agent->max_length) {
ofono_error("Length not acceptable");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -845,8 +846,8 @@
int stk_agent_request_input(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
const char *default_text,
- ofono_bool_t unicode_charset, int min, int max,
- ofono_bool_t hidden, stk_agent_string_cb cb,
+ bool unicode_charset, int min, int max,
+ bool hidden, stk_agent_string_cb cb,
void *user_data, ofono_destroy_func destroy,
int timeout)
{
@@ -896,12 +897,12 @@
stk_agent_confirmation_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
dbus_bool_t confirm;
if (check_error(agent, reply,
ALLOWED_ERROR_TERMINATE, &result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -914,7 +915,7 @@
DBUS_TYPE_BOOLEAN, &confirm,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to ConfirmCallSetup()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -962,17 +963,17 @@
stk_agent_tone_cb cb = agent->user_cb;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
if (check_error(agent, reply,
ALLOWED_ERROR_TERMINATE, &result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
if (dbus_message_get_args(reply, NULL, DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to PlayTone()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -983,7 +984,7 @@
}
int stk_agent_play_tone(struct stk_agent *agent, const char *text,
- const struct stk_icon_id *icon, ofono_bool_t vibrate,
+ const struct stk_icon_id *icon, bool vibrate,
const char *tone, stk_agent_tone_cb cb, void *user_data,
ofono_destroy_func destroy, int timeout)
{
@@ -1017,7 +1018,7 @@
}
int stk_agent_loop_tone(struct stk_agent *agent, const char *text,
- const struct stk_icon_id *icon, ofono_bool_t vibrate,
+ const struct stk_icon_id *icon, bool vibrate,
const char *tone, stk_agent_tone_cb cb, void *user_data,
ofono_destroy_func destroy, int timeout)
{
@@ -1055,16 +1056,16 @@
struct stk_agent *agent = data;
DBusMessage *reply = dbus_pending_call_steal_reply(call);
enum stk_agent_result result;
- gboolean remove_agent;
+ bool remove_agent;
if (check_error(agent, reply, 0, &result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
if (dbus_message_get_args(reply, NULL, DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to DisplayActionInfo()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -1109,7 +1110,7 @@
dbus_bool_t confirm;
if (check_error(agent, reply, 0, &result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
cb(STK_AGENT_RESULT_TERMINATE, FALSE, agent->user_data);
goto error;
}
@@ -1123,7 +1124,7 @@
DBUS_TYPE_BOOLEAN, &confirm,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to ConfirmLaunchBrowser()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -1180,13 +1181,13 @@
if (check_error(agent, reply,
ALLOWED_ERROR_TERMINATE, &result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
if (dbus_message_get_args(reply, NULL, DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to DisplayAction()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -1242,7 +1243,7 @@
if (check_error(agent, reply,
ALLOWED_ERROR_TERMINATE, &result) == -EINVAL) {
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
@@ -1255,7 +1256,7 @@
DBUS_TYPE_BOOLEAN, &confirm,
DBUS_TYPE_INVALID) == FALSE) {
ofono_error("Can't parse the reply to ConfirmOpenChannel()");
- remove_agent = TRUE;
+ remove_agent = true;
goto error;
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/stkagent.h
^
|
@@ -40,8 +40,8 @@
struct stk_icon_id icon;
struct stk_menu_item *items;
int default_item;
- gboolean soft_key;
- gboolean has_help;
+ bool soft_key;
+ bool has_help;
};
typedef void (*stk_agent_display_text_cb)(enum stk_agent_result result,
@@ -51,7 +51,7 @@
uint8_t id, void *user_data);
typedef void (*stk_agent_confirmation_cb)(enum stk_agent_result result,
- ofono_bool_t confirm,
+ bool confirm,
void *user_data);
typedef void (*stk_agent_string_cb)(enum stk_agent_result result,
@@ -64,7 +64,7 @@
void *user_data);
struct stk_agent *stk_agent_new(const char *path, const char *sender,
- ofono_bool_t remove_on_terminate);
+ bool remove_on_terminate);
void stk_agent_free(struct stk_agent *agent);
@@ -72,7 +72,7 @@
ofono_destroy_func removed_cb,
void *user_data);
-ofono_bool_t stk_agent_matches(struct stk_agent *agent,
+bool stk_agent_matches(struct stk_agent *agent,
const char *path, const char *sender);
void stk_agent_request_cancel(struct stk_agent *agent);
@@ -85,7 +85,7 @@
int stk_agent_display_text(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
- ofono_bool_t urgent,
+ bool urgent,
stk_agent_display_text_cb cb,
void *user_data, ofono_destroy_func destroy,
int timeout);
@@ -110,22 +110,22 @@
int stk_agent_request_key(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
- ofono_bool_t unicode_charset,
+ bool unicode_charset,
stk_agent_string_cb cb, void *user_data,
ofono_destroy_func destroy, int timeout);
int stk_agent_request_digits(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
const char *default_text, int min, int max,
- ofono_bool_t hidden, stk_agent_string_cb cb,
+ bool hidden, stk_agent_string_cb cb,
void *user_data, ofono_destroy_func destroy,
int timeout);
int stk_agent_request_input(struct stk_agent *agent, const char *text,
const struct stk_icon_id *icon,
const char *default_text,
- ofono_bool_t unicode_charset, int min, int max,
- ofono_bool_t hidden, stk_agent_string_cb cb,
+ bool unicode_charset, int min, int max,
+ bool hidden, stk_agent_string_cb cb,
void *user_data, ofono_destroy_func destroy,
int timeout);
@@ -135,12 +135,12 @@
ofono_destroy_func destroy, int timeout);
int stk_agent_play_tone(struct stk_agent *agent, const char *text,
- const struct stk_icon_id *icon, ofono_bool_t vibrate,
+ const struct stk_icon_id *icon, bool vibrate,
const char *tone, stk_agent_tone_cb cb, void *user_data,
ofono_destroy_func destroy, int timeout);
int stk_agent_loop_tone(struct stk_agent *agent, const char *text,
- const struct stk_icon_id *icon, ofono_bool_t vibrate,
+ const struct stk_icon_id *icon, bool vibrate,
const char *tone, stk_agent_tone_cb cb, void *user_data,
ofono_destroy_func destroy, int timeout);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/stkutil.c
^
|
@@ -28,6 +28,7 @@
#include <stdint.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/types.h>
#include "smsutil.h"
@@ -43,23 +44,22 @@
};
struct stk_file_iter {
- const unsigned char *start;
+ const uint8_t *start;
unsigned int pos;
unsigned int max;
- unsigned char len;
- const unsigned char *file;
+ uint8_t len;
+ const uint8_t *file;
};
struct stk_tlv_builder {
struct comprehension_tlv_builder ctlv;
- unsigned char *value;
+ uint8_t *value;
unsigned int len;
unsigned int max_len;
};
-typedef gboolean (*dataobj_handler)(struct comprehension_tlv_iter *, void *);
-typedef gboolean (*dataobj_writer)(struct stk_tlv_builder *,
- const void *, gboolean);
+typedef bool (*dataobj_handler)(struct comprehension_tlv_iter *, void *);
+typedef bool (*dataobj_writer)(struct stk_tlv_builder *, const void *, bool);
/*
* Defined in TS 102.223 Section 8.13
@@ -71,7 +71,7 @@
*/
struct gsm_sms_tpdu {
unsigned int len;
- unsigned char tpdu[184];
+ uint8_t tpdu[184];
};
#define CHECK_TEXT_AND_ICON(text, icon_id) \
@@ -81,7 +81,7 @@
if ((text == NULL || text[0] == '\0') && icon_id != 0) \
status = STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD; \
-static char *decode_text(unsigned char dcs, int len, const unsigned char *data)
+static char *decode_text(uint8_t dcs, int len, const unsigned char *data)
{
char *utf8;
enum sms_charset charset;
@@ -94,7 +94,7 @@
{
long written;
unsigned long max_to_unpack = len * 8 / 7;
- unsigned char *unpacked = unpack_7bit(data, len, 0, FALSE,
+ uint8_t *unpacked = unpack_7bit(data, len, 0, false,
max_to_unpack,
&written, 0);
if (unpacked == NULL)
@@ -102,16 +102,14 @@
utf8 = convert_gsm_to_utf8(unpacked, written,
NULL, NULL, 0);
- g_free(unpacked);
+ l_free(unpacked);
break;
}
case SMS_CHARSET_8BIT:
utf8 = convert_gsm_to_utf8(data, len, NULL, NULL, 0);
break;
case SMS_CHARSET_UCS2:
- utf8 = g_convert((const gchar *) data, len,
- "UTF-8//TRANSLIT", "UCS-2BE",
- NULL, NULL, NULL);
+ utf8 = l_utf8_from_ucs2be(data, len);
break;
default:
utf8 = NULL;
@@ -121,99 +119,92 @@
}
/* For data object only to indicate its existence */
-static gboolean parse_dataobj_common_bool(struct comprehension_tlv_iter *iter,
- gboolean *out)
+static bool parse_dataobj_common_bool(struct comprehension_tlv_iter *iter,
+ bool *out)
{
if (comprehension_tlv_iter_get_length(iter) != 0)
- return FALSE;
+ return false;
- *out = TRUE;
+ *out = true;
- return TRUE;
+ return true;
}
/* For data object that only has one byte */
-static gboolean parse_dataobj_common_byte(struct comprehension_tlv_iter *iter,
- unsigned char *out)
+static bool parse_dataobj_common_byte(struct comprehension_tlv_iter *iter,
+ uint8_t *out)
{
- const unsigned char *data;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
*out = data[0];
- return TRUE;
+ return true;
}
/* For data object that only has text terminated by '\0' */
-static gboolean parse_dataobj_common_text(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_common_text(struct comprehension_tlv_iter *iter,
char **text)
{
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
- *text = g_try_malloc(len + 1);
- if (*text == NULL)
- return FALSE;
-
+ *text = l_malloc(len + 1);
memcpy(*text, data, len);
(*text)[len] = '\0';
- return TRUE;
+ return true;
}
/* For data object that only has a byte array with undetermined length */
-static gboolean parse_dataobj_common_byte_array(
- struct comprehension_tlv_iter *iter,
- struct stk_common_byte_array *array)
+static bool parse_dataobj_common_byte_array(struct comprehension_tlv_iter *iter,
+ struct stk_common_byte_array *array)
{
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
array->len = len;
- array->array = g_try_malloc(len);
- if (array->array == NULL)
- return FALSE;
-
+ array->array = l_malloc(len);
memcpy(array->array, data, len);
- return TRUE;
+ return true;
}
static void stk_file_iter_init(struct stk_file_iter *iter,
- const unsigned char *start, unsigned int len)
+ const uint8_t *start, unsigned int len)
{
iter->start = start;
iter->max = len;
iter->pos = 0;
}
-static gboolean stk_file_iter_next(struct stk_file_iter *iter)
+static bool stk_file_iter_next(struct stk_file_iter *iter)
{
unsigned int pos = iter->pos;
const unsigned int max = iter->max;
- const unsigned char *start = iter->start;
+ const uint8_t *start = iter->start;
unsigned int i;
- unsigned char last_type;
+ uint8_t last_type;
if (pos + 2 >= max)
- return FALSE;
+ return false;
/* SIM EFs always start with ROOT MF, 0x3f */
if (start[iter->pos] != 0x3f)
- return FALSE;
+ return false;
last_type = 0x3f;
@@ -232,270 +223,265 @@
switch (start[i]) {
case 0x2f:
if (last_type != 0x3f)
- return FALSE;
+ return false;
break;
case 0x6f:
if (last_type != 0x7f)
- return FALSE;
+ return false;
break;
case 0x4f:
if (last_type != 0x5f)
- return FALSE;
+ return false;
break;
case 0x7f:
if (last_type != 0x3f)
- return FALSE;
+ return false;
break;
case 0x5f:
if (last_type != 0x7f)
- return FALSE;
+ return false;
break;
default:
- return FALSE;
+ return false;
}
if ((start[i] == 0x2f) || (start[i] == 0x6f) ||
(start[i] == 0x4f)) {
if (i + 1 >= max)
- return FALSE;
+ return false;
iter->file = start + pos;
iter->len = i - pos + 2;
iter->pos = i + 2;
- return TRUE;
+ return true;
}
last_type = start[i];
}
- return FALSE;
+ return false;
}
/* Defined in TS 102.223 Section 8.1 */
-static gboolean parse_dataobj_address(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_address(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_address *addr = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
char *number;
len = comprehension_tlv_iter_get_length(iter);
if (len < 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
- number = g_try_malloc(len * 2 - 1);
- if (number == NULL)
- return FALSE;
-
+ number = l_malloc(len * 2 - 1);
addr->ton_npi = data[0];
addr->number = number;
sim_extract_bcd_number(data + 1, len - 1, addr->number);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.2 */
-static gboolean parse_dataobj_alpha_id(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_alpha_id(struct comprehension_tlv_iter *iter,
void *user)
{
char **alpha_id = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
char *utf8;
len = comprehension_tlv_iter_get_length(iter);
if (len == 0) {
*alpha_id = NULL;
- return TRUE;
+ return true;
}
data = comprehension_tlv_iter_get_data(iter);
utf8 = sim_string_to_utf8(data, len);
if (utf8 == NULL)
- return FALSE;
+ return false;
*alpha_id = utf8;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.3 */
-static gboolean parse_dataobj_subaddress(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_subaddress(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_subaddress *subaddr = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
if (len > sizeof(subaddr->subaddr))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
subaddr->len = len;
memcpy(subaddr->subaddr, data, len);
- subaddr->has_subaddr = TRUE;
+ subaddr->has_subaddr = true;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.4 */
-static gboolean parse_dataobj_ccp(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_ccp(struct comprehension_tlv_iter *iter, void *user)
{
struct stk_ccp *ccp = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
if (len > sizeof(ccp->ccp))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
ccp->len = len;
memcpy(ccp->ccp, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 31.111 Section 8.5 */
-static gboolean parse_dataobj_cbs_page(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_cbs_page(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_cbs_page *cp = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
if (len > sizeof(cp->page))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
cp->len = len;
memcpy(cp->page, data, len);
- return TRUE;
+ return true;
}
/* Described in TS 102.223 Section 8.8 */
-static gboolean parse_dataobj_duration(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_duration(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_duration *duration = user;
- const unsigned char *data;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if (data[0] > 0x02)
- return FALSE;
+ return false;
if (data[1] == 0)
- return FALSE;
+ return false;
duration->unit = data[0];
duration->interval = data[1];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.9 */
-static gboolean parse_dataobj_item(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_item(struct comprehension_tlv_iter *iter, void *user)
{
struct stk_item *item = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
char *utf8;
len = comprehension_tlv_iter_get_length(iter);
if (len == 0)
- return TRUE;
+ return true;
if (len == 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* The identifier is between 0x01 and 0xFF */
if (data[0] == 0)
- return FALSE;
+ return false;
utf8 = sim_string_to_utf8(data + 1, len - 1);
if (utf8 == NULL)
- return FALSE;
+ return false;
item->id = data[0];
item->text = utf8;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.10 */
-static gboolean parse_dataobj_item_id(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_item_id(struct comprehension_tlv_iter *iter,
void *user)
{
- unsigned char *id = user;
- const unsigned char *data;
+ uint8_t *id = user;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
*id = data[0];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.11 */
-static gboolean parse_dataobj_response_len(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_response_len(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_response_length *response_len = user;
- const unsigned char *data;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
response_len->min = data[0];
response_len->max = data[1];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.12 */
-static gboolean parse_dataobj_result(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_result(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_result *result = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
- unsigned char *additional;
+ uint8_t *additional;
len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
@@ -503,78 +489,70 @@
(data[0] == 0x26) || (data[0] == 0x38) ||
(data[0] == 0x39) || (data[0] == 0x3a) ||
(data[0] == 0x3c) || (data[0] == 0x3d)))
- return FALSE;
-
- additional = g_try_malloc(len - 1);
- if (additional == NULL)
- return FALSE;
+ return false;
+ additional = l_malloc(len - 1);
result->type = data[0];
result->additional_len = len - 1;
result->additional = additional;
memcpy(result->additional, data + 1, len - 1);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.13 */
-static gboolean parse_dataobj_gsm_sms_tpdu(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_gsm_sms_tpdu(struct comprehension_tlv_iter *iter,
void *user)
{
struct gsm_sms_tpdu *tpdu = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len < 1 || len > sizeof(tpdu->tpdu))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
tpdu->len = len;
memcpy(tpdu->tpdu, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.14 */
-static gboolean parse_dataobj_ss(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_ss(struct comprehension_tlv_iter *iter, void *user)
{
struct stk_ss *ss = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
char *s;
len = comprehension_tlv_iter_get_length(iter);
if (len < 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
- s = g_try_malloc(len * 2 - 1);
- if (s == NULL)
- return FALSE;
-
+ s = l_malloc(len * 2 - 1);
ss->ton_npi = data[0];
ss->ss = s;
sim_extract_bcd_number(data + 1, len - 1, ss->ss);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.15 */
-static gboolean parse_dataobj_text(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_text(struct comprehension_tlv_iter *iter, void *user)
{
char **text = user;
unsigned int len = comprehension_tlv_iter_get_length(iter);
- const unsigned char *data;
+ const uint8_t *data;
char *utf8;
if (len <= 1) {
- *text = g_try_malloc0(1);
- return TRUE;
+ *text = l_new(char, 1);
+ return true;
}
data = comprehension_tlv_iter_get_data(iter);
@@ -582,88 +560,84 @@
utf8 = decode_text(data[0], len - 1, data + 1);
if (utf8 == NULL)
- return FALSE;
+ return false;
*text = utf8;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.16 */
-static gboolean parse_dataobj_tone(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_tone(struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.17 */
-static gboolean parse_dataobj_ussd(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_ussd(struct comprehension_tlv_iter *iter, void *user)
{
struct stk_ussd_string *us = user;
unsigned int len = comprehension_tlv_iter_get_length(iter);
- const unsigned char *data = comprehension_tlv_iter_get_data(iter);
+ const uint8_t *data = comprehension_tlv_iter_get_data(iter);
if (len <= 1 || len > 161)
- return FALSE;
+ return false;
us->dcs = data[0];
us->len = len - 1;
memcpy(us->string, data + 1, us->len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.18 */
-static gboolean parse_dataobj_file_list(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_file_list(struct comprehension_tlv_iter *iter,
void *user)
{
- GSList **fl = user;
- const unsigned char *data;
+ struct l_queue **out = user;
+ struct l_queue *fl;
+ const uint8_t *data;
unsigned int len;
struct stk_file *sf;
struct stk_file_iter sf_iter;
len = comprehension_tlv_iter_get_length(iter);
if (len < 5)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
-
stk_file_iter_init(&sf_iter, data + 1, len - 1);
+ fl = l_queue_new();
while (stk_file_iter_next(&sf_iter)) {
- sf = g_try_new0(struct stk_file, 1);
- if (sf == NULL)
- goto error;
-
+ sf = l_new(struct stk_file, 1);
sf->len = sf_iter.len;
memcpy(sf->file, sf_iter.file, sf_iter.len);
- *fl = g_slist_prepend(*fl, sf);
+ l_queue_push_tail(fl, sf);
}
if (sf_iter.pos != sf_iter.max)
goto error;
- *fl = g_slist_reverse(*fl);
- return TRUE;
+ *out = fl;
+ return true;
error:
- g_slist_free_full(*fl, g_free);
- return FALSE;
+ l_queue_destroy(fl, l_free);
+ return false;
}
/* Defined in TS 102.223 Section 8.19 */
-static gboolean parse_dataobj_location_info(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_location_info(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_location_info *li = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if ((len != 5) && (len != 7) && (len != 9))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
@@ -671,16 +645,16 @@
li->lac_tac = (data[3] << 8) + data[4];
if (len >= 7) {
- li->has_ci = TRUE;
+ li->has_ci = true;
li->ci = (data[5] << 8) + data[6];
}
if (len == 9) {
- li->has_ext_ci = TRUE;
+ li->has_ext_ci = true;
li->ext_ci = (data[7] << 8) + data[8];
}
- return TRUE;
+ return true;
}
/*
@@ -697,180 +671,180 @@
* For example, if the IMEI is "123456789012345", then it's coded as
* "1A 32 54 76 98 10 32 54".
*/
-static gboolean parse_dataobj_imei(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_imei(struct comprehension_tlv_iter *iter,
void *user)
{
char *imei = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
static const char digit_lut[] = "0123456789*#abc\0";
len = comprehension_tlv_iter_get_length(iter);
if (len != 8)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if ((data[0] & 0x0f) != 0x0a)
- return FALSE;
+ return false;
/* Assume imei is at least 16 bytes long (15 for imei + null) */
imei[0] = digit_lut[(data[0] & 0xf0) >> 4];
extract_bcd_number(data + 1, 7, imei + 1);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.21 */
-static gboolean parse_dataobj_help_request(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_help_request(struct comprehension_tlv_iter *iter,
void *user)
{
- gboolean *ret = user;
+ bool *ret = user;
return parse_dataobj_common_bool(iter, ret);
}
/* Defined in TS 102.223 Section 8.22 */
-static gboolean parse_dataobj_network_measurement_results(
+static bool parse_dataobj_network_measurement_results(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *nmr = user;
- const unsigned char *data;
+ uint8_t *nmr = user;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len != 0x10)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* Assume network measurement result is 16 bytes long */
memcpy(nmr, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.23 */
-static gboolean parse_dataobj_default_text(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_default_text(struct comprehension_tlv_iter *iter,
void *user)
{
char **text = user;
unsigned int len = comprehension_tlv_iter_get_length(iter);
- const unsigned char *data = comprehension_tlv_iter_get_data(iter);
+ const uint8_t *data = comprehension_tlv_iter_get_data(iter);
char *utf8;
/* DCS followed by some text, cannot be 1 */
if (len <= 1)
- return FALSE;
+ return false;
utf8 = decode_text(data[0], len - 1, data + 1);
if (utf8 == NULL)
- return FALSE;
+ return false;
*text = utf8;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.24 */
-static gboolean parse_dataobj_items_next_action_indicator(
+static bool parse_dataobj_items_next_action_indicator(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_items_next_action_indicator *inai = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len < 1) || (len > sizeof(inai->list)))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
inai->len = len;
memcpy(inai->list, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.25 */
-static gboolean parse_dataobj_event_list(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_event_list(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_event_list *el = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len == 0)
- return TRUE;
+ return true;
if (len > sizeof(el->list))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
el->len = len;
memcpy(el->list, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.26 */
-static gboolean parse_dataobj_cause(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_cause(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_cause *cause = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len == 1) || (len > sizeof(cause->cause)))
- return FALSE;
+ return false;
- cause->has_cause = TRUE;
+ cause->has_cause = true;
if (len == 0)
- return TRUE;
+ return true;
data = comprehension_tlv_iter_get_data(iter);
cause->len = len;
memcpy(cause->cause, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.27 */
-static gboolean parse_dataobj_location_status(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_location_status(struct comprehension_tlv_iter *iter,
+ void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.28 */
-static gboolean parse_dataobj_transaction_id(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_transaction_id(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_transaction_id *ti = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len < 1) || (len > sizeof(ti->list)))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
ti->len = len;
memcpy(ti->list, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 31.111 Section 8.29 */
-static gboolean parse_dataobj_bcch_channel_list(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_bcch_channel_list(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_bcch_channel_list *bcl = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
unsigned int i;
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
@@ -884,13 +858,13 @@
(data[index + 1] >> (6 - occupied));
}
- bcl->has_list = TRUE;
+ bcl->has_list = true;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.30 */
-static gboolean parse_dataobj_call_control_requested_action(
+static bool parse_dataobj_call_control_requested_action(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_common_byte_array *array = user;
@@ -899,80 +873,80 @@
}
/* Defined in TS 102.223 Section 8.31 */
-static gboolean parse_dataobj_icon_id(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_icon_id(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_icon_id *id = user;
- const unsigned char *data;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
id->qualifier = data[0];
id->id = data[1];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.32 */
-static gboolean parse_dataobj_item_icon_id_list(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_item_icon_id_list(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_item_icon_id_list *iiil = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len < 2) || (len > 127))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
iiil->qualifier = data[0];
iiil->len = len - 1;
memcpy(iiil->list, data + 1, iiil->len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.33 */
-static gboolean parse_dataobj_card_reader_status(
+static bool parse_dataobj_card_reader_status(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.34 */
-static gboolean parse_dataobj_card_atr(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_card_atr(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_card_atr *ca = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len < 1) || (len > sizeof(ca->atr)))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
ca->len = len;
memcpy(ca->atr, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.35 */
-static gboolean parse_dataobj_c_apdu(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_c_apdu(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_c_apdu *ca = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
unsigned int pos;
if ((len < 4) || (len > 241))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
ca->cla = data[0];
@@ -990,34 +964,34 @@
if (len > 5) {
ca->lc = data[4];
if (ca->lc > sizeof(ca->data))
- return FALSE;
+ return false;
pos += ca->lc + 1;
if (len - pos > 1)
- return FALSE;
+ return false;
memcpy(ca->data, data+5, ca->lc);
}
if (len - pos > 0) {
ca->le = data[len - 1];
- ca->has_le = TRUE;
+ ca->has_le = true;
}
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.36 */
-static gboolean parse_dataobj_r_apdu(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_r_apdu(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_r_apdu *ra = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len < 2) || (len > 239))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
ra->sw1 = data[len-2];
@@ -1029,56 +1003,56 @@
} else
ra->len = 0;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.37 */
-static gboolean parse_dataobj_timer_id(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_timer_id(struct comprehension_tlv_iter *iter,
void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.38 */
-static gboolean parse_dataobj_timer_value(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_timer_value(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_timer_value *tv = user;
- const unsigned char *data;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 3)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
tv->hour = sms_decode_semi_octet(data[0]);
tv->minute = sms_decode_semi_octet(data[1]);
tv->second = sms_decode_semi_octet(data[2]);
- tv->has_value = TRUE;
+ tv->has_value = true;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.39 */
-static gboolean parse_dataobj_datetime_timezone(
+static bool parse_dataobj_datetime_timezone(
struct comprehension_tlv_iter *iter, void *user)
{
struct sms_scts *scts = user;
- const unsigned char *data;
+ const uint8_t *data;
int offset = 0;
if (comprehension_tlv_iter_get_length(iter) != 7)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
sms_decode_scts(data, 7, &offset, scts);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.40 */
-static gboolean parse_dataobj_at_command(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_at_command(struct comprehension_tlv_iter *iter,
void *user)
{
char **command = user;
@@ -1086,7 +1060,7 @@
}
/* Defined in TS 102.223 Section 8.41 */
-static gboolean parse_dataobj_at_response(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_at_response(struct comprehension_tlv_iter *iter,
void *user)
{
char **response = user;
@@ -1094,58 +1068,55 @@
}
/* Defined in TS 102.223 Section 8.42 */
-static gboolean parse_dataobj_bc_repeat_indicator(
+static bool parse_dataobj_bc_repeat_indicator(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_bc_repeat *bc_repeat = user;
- if (parse_dataobj_common_byte(iter, &bc_repeat->value) != TRUE)
- return FALSE;
+ if (!parse_dataobj_common_byte(iter, &bc_repeat->value))
+ return false;
- bc_repeat->has_bc_repeat = TRUE;
- return TRUE;
+ bc_repeat->has_bc_repeat = true;
+ return true;
}
/* Defined in 102.223 Section 8.43 */
-static gboolean parse_dataobj_imm_resp(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_imm_resp(struct comprehension_tlv_iter *iter,
void *user)
{
- gboolean *ret = user;
+ bool *ret = user;
return parse_dataobj_common_bool(iter, ret);
}
/* Defined in 102.223 Section 8.44 */
-static gboolean parse_dataobj_dtmf_string(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_dtmf_string(struct comprehension_tlv_iter *iter,
void *user)
{
char **dtmf = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
- *dtmf = g_try_malloc(len * 2 + 1);
- if (*dtmf == NULL)
- return FALSE;
-
+ *dtmf = l_malloc(len * 2 + 1);
sim_extract_bcd_number(data, len, *dtmf);
- return TRUE;
+ return true;
}
/* Defined in 102.223 Section 8.45 */
-static gboolean parse_dataobj_language(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_language(struct comprehension_tlv_iter *iter,
void *user)
{
char *lang = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len != 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
@@ -1158,58 +1129,57 @@
memcpy(lang, data, len);
lang[len] = '\0';
- return TRUE;
+ return true;
}
/* Defined in 31.111 Section 8.46 */
-static gboolean parse_dataobj_timing_advance(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_timing_advance(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_timing_advance *ta = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len != 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
- ta->has_value = TRUE;
+ ta->has_value = true;
ta->status = data[0];
ta->advance = data[1];
- return TRUE;
+ return true;
}
/* Defined in 102.223 Section 8.47 */
-static gboolean parse_dataobj_browser_id(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_browser_id(struct comprehension_tlv_iter *iter,
void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
- if (parse_dataobj_common_byte(iter, byte) == FALSE || *byte > 4)
- return FALSE;
+ if (!parse_dataobj_common_byte(iter, byte) || *byte > 4)
+ return false;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.48 */
-static gboolean parse_dataobj_url(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_url(struct comprehension_tlv_iter *iter, void *user)
{
char **url = user;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len == 0) {
*url = NULL;
- return TRUE;
+ return true;
}
return parse_dataobj_common_text(iter, url);
}
/* Defined in TS 102.223 Section 8.49 */
-static gboolean parse_dataobj_bearer(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_bearer(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_common_byte_array *array = user;
@@ -1217,16 +1187,16 @@
}
/* Defined in TS 102.223 Section 8.50 */
-static gboolean parse_dataobj_provisioning_file_reference(
+static bool parse_dataobj_provisioning_file_reference(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_file *f = user;
- const unsigned char *data;
+ const uint8_t *data;
struct stk_file_iter sf_iter;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len < 1) || (len > 8))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
@@ -1234,42 +1204,42 @@
stk_file_iter_next(&sf_iter);
if (sf_iter.pos != sf_iter.max)
- return FALSE;
+ return false;
f->len = len;
memcpy(f->file, data, len);
- return TRUE;
+ return true;
}
/* Defined in 102.223 Section 8.51 */
-static gboolean parse_dataobj_browser_termination_cause(
+static bool parse_dataobj_browser_termination_cause(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.52 */
-static gboolean parse_dataobj_bearer_description(
+static bool parse_dataobj_bearer_description(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_bearer_description *bd = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
bd->type = data[0];
/* Parse only the packet data service bearer parameters */
if (bd->type != STK_BEARER_TYPE_GPRS_UTRAN)
- return FALSE;
+ return false;
if (len < 7)
- return FALSE;
+ return false;
bd->gprs.precedence = data[1];
bd->gprs.delay = data[2];
@@ -1278,11 +1248,11 @@
bd->gprs.mean = data[5];
bd->gprs.pdp_type = data[6];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.53 */
-static gboolean parse_dataobj_channel_data(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_channel_data(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_common_byte_array *array = user;
@@ -1290,85 +1260,85 @@
}
/* Defined in TS 102.223 Section 8.54 */
-static gboolean parse_dataobj_channel_data_length(
+static bool parse_dataobj_channel_data_length(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.55 */
-static gboolean parse_dataobj_buffer_size(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_buffer_size(struct comprehension_tlv_iter *iter,
void *user)
{
- unsigned short *size = user;
- const unsigned char *data;
+ uint16_t *size = user;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
*size = (data[0] << 8) + data[1];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.56 */
-static gboolean parse_dataobj_channel_status(
+static bool parse_dataobj_channel_status(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *status = user;
- const unsigned char *data;
+ uint8_t *status = user;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* Assume channel status is 2 bytes long */
memcpy(status, data, 2);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.57 */
-static gboolean parse_dataobj_card_reader_id(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_card_reader_id(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_card_reader_id *cr_id = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
cr_id->len = len;
memcpy(cr_id->id, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.58 */
-static gboolean parse_dataobj_other_address(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_other_address(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_other_address *oa = user;
- const unsigned char *data;
- unsigned char len = comprehension_tlv_iter_get_length(iter);
+ const uint8_t *data;
+ uint8_t len = comprehension_tlv_iter_get_length(iter);
if (len == 0) {
oa->type = STK_ADDRESS_AUTO;
- return TRUE;
+ return true;
}
if ((len != 5) && (len != 17))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if (data[0] != STK_ADDRESS_IPV4 && data[0] != STK_ADDRESS_IPV6)
- return FALSE;
+ return false;
oa->type = data[0];
@@ -1377,43 +1347,42 @@
else
memcpy(&oa->addr.ipv6, data + 1, 16);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.59 */
-static gboolean parse_dataobj_uicc_te_interface(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_uicc_te_interface(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_uicc_te_interface *uti = user;
- const unsigned char *data;
- unsigned char len = comprehension_tlv_iter_get_length(iter);
+ const uint8_t *data;
+ uint8_t len = comprehension_tlv_iter_get_length(iter);
if (len != 3)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
uti->protocol = data[0];
uti->port = (data[1] << 8) + data[2];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.60 */
-static gboolean parse_dataobj_aid(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_aid(struct comprehension_tlv_iter *iter, void *user)
{
struct stk_aid *aid = user;
- const unsigned char *data;
- unsigned char len = comprehension_tlv_iter_get_length(iter);
+ const uint8_t *data;
+ uint8_t len = comprehension_tlv_iter_get_length(iter);
if ((len > 16) || (len < 12))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
aid->len = len;
memcpy(aid->aid, data, len);
- return TRUE;
+ return true;
}
/*
@@ -1421,149 +1390,137 @@
* can have at most 127 bytes. However, all the defined values are only 1 byte,
* so we just use 1 byte to represent it.
*/
-static gboolean parse_dataobj_access_technology(
+static bool parse_dataobj_access_technology(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.62 */
-static gboolean parse_dataobj_display_parameters(
+static bool parse_dataobj_display_parameters(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_display_parameters *dp = user;
- const unsigned char *data;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 3)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
dp->height = data[0];
dp->width = data[1];
dp->effects = data[2];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.63 */
-static gboolean parse_dataobj_service_record(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_service_record(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_service_record *sr = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len < 3)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
sr->tech_id = data[0];
sr->serv_id = data[1];
sr->len = len - 2;
- sr->serv_rec = g_try_malloc(sr->len);
- if (sr->serv_rec == NULL)
- return FALSE;
-
+ sr->serv_rec = l_malloc(sr->len);
memcpy(sr->serv_rec, data + 2, sr->len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.64 */
-static gboolean parse_dataobj_device_filter(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_device_filter(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_device_filter *df = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* According to TS 102.223, everything except BT & IRDA is RFU */
if (data[0] != STK_TECHNOLOGY_BLUETOOTH &&
data[0] != STK_TECHNOLOGY_IRDA)
- return FALSE;
+ return false;
df->tech_id = data[0];
df->len = len - 1;
- df->dev_filter = g_try_malloc(df->len);
- if (df->dev_filter == NULL)
- return FALSE;
-
+ df->dev_filter = l_malloc(df->len);
memcpy(df->dev_filter, data + 1, df->len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.65 */
-static gboolean parse_dataobj_service_search(
+static bool parse_dataobj_service_search(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_service_search *ss = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* According to TS 102.223, everything except BT & IRDA is RFU */
if (data[0] != STK_TECHNOLOGY_BLUETOOTH &&
data[0] != STK_TECHNOLOGY_IRDA)
- return FALSE;
+ return false;
ss->tech_id = data[0];
ss->len = len - 1;
- ss->ser_search = g_try_malloc(ss->len);
- if (ss->ser_search == NULL)
- return FALSE;
-
+ ss->ser_search = l_malloc(ss->len);
memcpy(ss->ser_search, data + 1, ss->len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.66 */
-static gboolean parse_dataobj_attribute_info(
- struct comprehension_tlv_iter *iter, void *user)
+static bool parse_dataobj_attribute_info(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_attribute_info *ai = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* According to TS 102.223, everything except BT & IRDA is RFU */
if (data[0] != STK_TECHNOLOGY_BLUETOOTH &&
data[0] != STK_TECHNOLOGY_IRDA)
- return FALSE;
+ return false;
ai->tech_id = data[0];
ai->len = len - 1;
- ai->attr_info = g_try_malloc(ai->len);
- if (ai->attr_info == NULL)
- return FALSE;
-
+ ai->attr_info = l_malloc(ai->len);
memcpy(ai->attr_info, data + 1, ai->len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.67 */
-static gboolean parse_dataobj_service_availability(
+static bool parse_dataobj_service_availability(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_common_byte_array *array = user;
@@ -1571,11 +1528,11 @@
}
/* Defined in TS 102.223 Section 8.68 */
-static gboolean parse_dataobj_remote_entity_address(
+static bool parse_dataobj_remote_entity_address(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_remote_entity_address *rea = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
data = comprehension_tlv_iter_get_data(iter);
@@ -1583,56 +1540,55 @@
switch (data[0]) {
case 0x00:
if (len != 7)
- return FALSE;
+ return false;
break;
case 0x01:
if (len != 5)
- return FALSE;
+ return false;
break;
default:
- return FALSE;
+ return false;
}
- rea->has_address = TRUE;
+ rea->has_address = true;
rea->coding_type = data[0];
memcpy(&rea->addr, data + 1, len - 1);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.69 */
-static gboolean parse_dataobj_esn(struct comprehension_tlv_iter *iter,
- void *user)
+static bool parse_dataobj_esn(struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *esn = user;
- const unsigned char *data;
+ uint8_t *esn = user;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len != 4)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* Assume esn is 4 bytes long */
memcpy(esn, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.70 */
-static gboolean parse_dataobj_network_access_name(
+static bool parse_dataobj_network_access_name(
struct comprehension_tlv_iter *iter,
void *user)
{
char **apn = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
- unsigned char label_size;
- unsigned char offset = 0;
+ uint8_t label_size;
+ uint8_t offset = 0;
char decoded_apn[100];
if (len == 0 || len > 100)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
@@ -1646,7 +1602,7 @@
label_size = *data;
if (label_size == 0 || label_size > (len - 1))
- return FALSE;
+ return false;
memcpy(decoded_apn + offset, data + 1, label_size);
@@ -1659,13 +1615,13 @@
}
decoded_apn[offset] = '\0';
- *apn = g_strdup(decoded_apn);
+ *apn = l_strdup(decoded_apn);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.71 */
-static gboolean parse_dataobj_cdma_sms_tpdu(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_cdma_sms_tpdu(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_common_byte_array *array = user;
@@ -1673,71 +1629,71 @@
}
/* Defined in TS 102.223 Section 8.72 */
-static gboolean parse_dataobj_text_attr(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_text_attr(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_text_attribute *attr = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len > sizeof(attr->attributes))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
memcpy(attr->attributes, data, len);
attr->len = len;
- return TRUE;
+ return true;
}
/* Defined in TS 31.111 Section 8.72 */
-static gboolean parse_dataobj_pdp_act_par(
+static bool parse_dataobj_pdp_act_par(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_pdp_act_par *pcap = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
len = comprehension_tlv_iter_get_length(iter);
if (len > sizeof(pcap->par))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
memcpy(pcap->par, data, len);
pcap->len = len;
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.73 */
-static gboolean parse_dataobj_item_text_attribute_list(
+static bool parse_dataobj_item_text_attribute_list(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_item_text_attribute_list *ital = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if ((len > sizeof(ital->list)) || (len % 4 != 0))
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
memcpy(ital->list, data, len);
ital->len = len;
- return TRUE;
+ return true;
}
/* Defined in TS 31.111 Section 8.73 */
-static gboolean parse_dataobj_utran_meas_qualifier(
+static bool parse_dataobj_utran_meas_qualifier(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
@@ -1755,25 +1711,25 @@
* For example, if the IMEISV is "1234567890123456", then it's coded as
* "13 32 54 76 98 10 32 54 F6".
*/
-static gboolean parse_dataobj_imeisv(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_imeisv(struct comprehension_tlv_iter *iter,
void *user)
{
char *imeisv = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len;
static const char digit_lut[] = "0123456789*#abc\0";
len = comprehension_tlv_iter_get_length(iter);
if (len != 9)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if ((data[0] & 0x0f) != 0x03)
- return FALSE;
+ return false;
if (data[8] >> 4 != 0x0f)
- return FALSE;
+ return false;
/* Assume imeisv is at least 17 bytes long (16 for imeisv + null) */
imeisv[0] = digit_lut[data[0] >> 4];
@@ -1781,27 +1737,27 @@
imeisv[15] = digit_lut[data[8] & 0x0f];
imeisv[16] = '\0';
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.75 */
-static gboolean parse_dataobj_network_search_mode(
+static bool parse_dataobj_network_search_mode(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.76 */
-static gboolean parse_dataobj_battery_state(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_battery_state(struct comprehension_tlv_iter *iter,
void *user)
{
- unsigned char *byte = user;
+ uint8_t *byte = user;
return parse_dataobj_common_byte(iter, byte);
}
/* Defined in TS 102.223 Section 8.77 */
-static gboolean parse_dataobj_browsing_status(
+static bool parse_dataobj_browsing_status(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_common_byte_array *array = user;
@@ -1809,54 +1765,54 @@
}
/* Defined in TS 102.223 Section 8.78 */
-static gboolean parse_dataobj_frame_layout(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_frame_layout(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_frame_layout *fl = user;
- const unsigned char *data;
- unsigned char len = comprehension_tlv_iter_get_length(iter);
+ const uint8_t *data;
+ uint8_t len = comprehension_tlv_iter_get_length(iter);
if (len < 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if (data[0] != STK_LAYOUT_HORIZONTAL &&
data[0] != STK_LAYOUT_VERTICAL)
- return FALSE;
+ return false;
fl->layout = data[0];
fl->len = len - 1;
memcpy(fl->size, data + 1, fl->len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.79 */
-static gboolean parse_dataobj_frames_info(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_frames_info(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_frames_info *fi = user;
- const unsigned char *data;
- unsigned char len = comprehension_tlv_iter_get_length(iter);
+ const uint8_t *data;
+ uint8_t len = comprehension_tlv_iter_get_length(iter);
unsigned int i;
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if (data[0] > 0x0f)
- return FALSE;
+ return false;
if ((len == 1 && data[0] != 0) || (len > 1 && data[0] == 0))
- return FALSE;
+ return false;
if (len % 2 == 0)
- return FALSE;
+ return false;
if (len == 1)
- return TRUE;
+ return true;
fi->id = data[0];
fi->len = (len - 1) / 2;
@@ -1865,122 +1821,122 @@
fi->list[i].width = data[i * 2 + 2] & 0x7f;
}
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.80 */
-static gboolean parse_dataobj_frame_id(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_frame_id(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_frame_id *fi = user;
- const unsigned char *data;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if (data[0] >= 0x10)
- return FALSE;
+ return false;
- fi->has_id = TRUE;
+ fi->has_id = true;
fi->id = data[0];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.81 */
-static gboolean parse_dataobj_meid(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_meid(struct comprehension_tlv_iter *iter,
void *user)
{
- unsigned char *meid = user;
- const unsigned char *data;
+ uint8_t *meid = user;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 8)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
/* Assume meid is 8 bytes long */
memcpy(meid, data, 8);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.82 */
-static gboolean parse_dataobj_mms_reference(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_mms_reference(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_mms_reference *mr = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
mr->len = len;
memcpy(mr->ref, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.83 */
-static gboolean parse_dataobj_mms_id(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_mms_id(struct comprehension_tlv_iter *iter,
void *user)
{
struct stk_mms_id *mi = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
mi->len = len;
memcpy(mi->id, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.84 */
-static gboolean parse_dataobj_mms_transfer_status(
+static bool parse_dataobj_mms_transfer_status(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_mms_transfer_status *mts = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
mts->len = len;
memcpy(mts->status, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.85 */
-static gboolean parse_dataobj_mms_content_id(
+static bool parse_dataobj_mms_content_id(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_mms_content_id *mci = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
mci->len = len;
memcpy(mci->id, data, len);
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.86 */
-static gboolean parse_dataobj_mms_notification(
+static bool parse_dataobj_mms_notification(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_common_byte_array *array = user;
@@ -1988,80 +1944,80 @@
}
/* Defined in TS 102.223 Section 8.87 */
-static gboolean parse_dataobj_last_envelope(struct comprehension_tlv_iter *iter,
+static bool parse_dataobj_last_envelope(struct comprehension_tlv_iter *iter,
void *user)
{
- gboolean *ret = user;
+ bool *ret = user;
return parse_dataobj_common_bool(iter, ret);
}
/* Defined in TS 102.223 Section 8.88 */
-static gboolean parse_dataobj_registry_application_data(
+static bool parse_dataobj_registry_application_data(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_registry_application_data *rad = user;
- const unsigned char *data;
+ const uint8_t *data;
char *utf8;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 5)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
utf8 = decode_text(data[2], len - 4, data + 4);
if (utf8 == NULL)
- return FALSE;
+ return false;
rad->name = utf8;
rad->port = (data[0] << 8) + data[1];
rad->type = data[3];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.89 */
-static gboolean parse_dataobj_activate_descriptor(
+static bool parse_dataobj_activate_descriptor(
struct comprehension_tlv_iter *iter, void *user)
{
- unsigned char *byte = user;
- const unsigned char *data;
+ uint8_t *byte = user;
+ const uint8_t *data;
if (comprehension_tlv_iter_get_length(iter) != 1)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if (data[0] != 0x01)
- return FALSE;
+ return false;
*byte = data[0];
- return TRUE;
+ return true;
}
/* Defined in TS 102.223 Section 8.90 */
-static gboolean parse_dataobj_broadcast_network_info(
+static bool parse_dataobj_broadcast_network_info(
struct comprehension_tlv_iter *iter, void *user)
{
struct stk_broadcast_network_information *bni = user;
- const unsigned char *data;
+ const uint8_t *data;
unsigned int len = comprehension_tlv_iter_get_length(iter);
if (len < 2)
- return FALSE;
+ return false;
data = comprehension_tlv_iter_get_data(iter);
if (data[0] > 0x03)
- return FALSE;
+ return false;
bni->tech = data[0];
bni->len = len - 1;
memcpy(bni->loc_info, data + 1, bni->len);
- return TRUE;
+ return true;
}
static dataobj_handler handler_for_type(enum stk_data_object_type type)
@@ -2255,77 +2211,72 @@
static void destroy_stk_item(gpointer pointer)
{
struct stk_item *item = pointer;
- g_free(item->text);
- g_free(item);
+ l_free(item->text);
+ l_free(item);
}
-static gboolean parse_item_list(struct comprehension_tlv_iter *iter,
- void *data)
+static bool parse_item_list(struct comprehension_tlv_iter *iter, void *data)
{
- GSList **out = data;
- unsigned short tag = STK_DATA_OBJECT_TYPE_ITEM;
+ struct l_queue **out = data;
+ uint16_t tag = STK_DATA_OBJECT_TYPE_ITEM;
struct comprehension_tlv_iter iter_old;
struct stk_item item;
- GSList *list = NULL;
+ struct l_queue *list = l_queue_new();
unsigned int count = 0;
- gboolean has_empty = FALSE;
+ bool has_empty = false;
do {
comprehension_tlv_iter_copy(iter, &iter_old);
memset(&item, 0, sizeof(item));
count++;
- if (parse_dataobj_item(iter, &item) == TRUE) {
- if (item.id == 0) {
- has_empty = TRUE;
- continue;
- }
+ if (!parse_dataobj_item(iter, &item))
+ continue;
- list = g_slist_prepend(list,
- g_memdup(&item, sizeof(item)));
+ if (item.id == 0) {
+ has_empty = true;
+ continue;
}
+
+ l_queue_push_tail(list, l_memdup(&item, sizeof(item)));
} while (comprehension_tlv_iter_next(iter) == TRUE &&
comprehension_tlv_iter_get_tag(iter) == tag);
comprehension_tlv_iter_copy(&iter_old, iter);
- if (!has_empty) {
- *out = g_slist_reverse(list);
- return TRUE;
+ if (!has_empty || count == 1) {
+ *out = list;
+ return true;
}
- if (count == 1)
- return TRUE;
-
- g_slist_free_full(list, destroy_stk_item);
- return FALSE;
-
+ l_queue_destroy(list, destroy_stk_item);
+ return false;
}
-static gboolean parse_provisioning_list(struct comprehension_tlv_iter *iter,
+static bool parse_provisioning_list(struct comprehension_tlv_iter *iter,
void *data)
{
- GSList **out = data;
- unsigned short tag = STK_DATA_OBJECT_TYPE_PROVISIONING_FILE_REF;
+ struct l_queue **out = data;
+ uint16_t tag = STK_DATA_OBJECT_TYPE_PROVISIONING_FILE_REF;
struct comprehension_tlv_iter iter_old;
struct stk_file file;
- GSList *list = NULL;
+ struct l_queue *list = l_queue_new();
do {
comprehension_tlv_iter_copy(iter, &iter_old);
memset(&file, 0, sizeof(file));
- if (parse_dataobj_provisioning_file_reference(iter, &file)
- == TRUE)
- list = g_slist_prepend(list,
- g_memdup(&file, sizeof(file)));
+ if (!parse_dataobj_provisioning_file_reference(iter, &file))
+ continue;
+
+ l_queue_push_tail(list, l_memdup(&file, sizeof(file)));
} while (comprehension_tlv_iter_next(iter) == TRUE &&
comprehension_tlv_iter_get_tag(iter) == tag);
comprehension_tlv_iter_copy(&iter_old, iter);
- *out = g_slist_reverse(list);
+ *out = list;
- return TRUE;
+ return true;
}
static dataobj_handler list_handler_for_type(enum stk_data_object_type type)
@@ -2353,8 +2304,8 @@
GSList *entries = NULL;
GSList *l;
va_list args;
- gboolean minimum_set = TRUE;
- gboolean parse_error = FALSE;
+ bool minimum_set = true;
+ bool parse_error = false;
va_start(args, type);
@@ -2396,7 +2347,7 @@
if (l2 == NULL) {
if (comprehension_tlv_get_cr(iter) == TRUE)
- parse_error = TRUE;
+ parse_error = true;
continue;
}
@@ -2406,8 +2357,8 @@
else
handler = handler_for_type(entry->type);
- if (handler(iter, entry->data) == FALSE)
- parse_error = TRUE;
+ if (!handler(iter, entry->data))
+ parse_error = true;
l = l2->next;
}
@@ -2416,14 +2367,14 @@
struct dataobj_handler_entry *entry = l->data;
if (entry->flags & DATAOBJ_FLAG_MANDATORY)
- minimum_set = FALSE;
+ minimum_set = false;
}
g_slist_free_full(entries, g_free);
- if (minimum_set == FALSE)
+ if (!minimum_set)
return STK_PARSE_RESULT_MISSING_VALUE;
- if (parse_error == TRUE)
+ if (parse_error)
return STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD;
return STK_PARSE_RESULT_OK;
@@ -2431,7 +2382,7 @@
static void destroy_display_text(struct stk_command *command)
{
- g_free(command->display_text.text);
+ l_free(command->display_text.text);
}
static enum stk_command_parse_result parse_display_text(
@@ -2471,7 +2422,7 @@
static void destroy_get_inkey(struct stk_command *command)
{
- g_free(command->get_inkey.text);
+ l_free(command->get_inkey.text);
}
static enum stk_command_parse_result parse_get_inkey(
@@ -2509,8 +2460,8 @@
static void destroy_get_input(struct stk_command *command)
{
- g_free(command->get_input.text);
- g_free(command->get_input.default_text);
+ l_free(command->get_input.text);
+ l_free(command->get_input.default_text);
}
static enum stk_command_parse_result parse_get_input(
@@ -2564,7 +2515,7 @@
static void destroy_play_tone(struct stk_command *command)
{
- g_free(command->play_tone.alpha_id);
+ l_free(command->play_tone.alpha_id);
}
static enum stk_command_parse_result parse_play_tone(
@@ -2621,8 +2572,8 @@
static void destroy_setup_menu(struct stk_command *command)
{
- g_free(command->setup_menu.alpha_id);
- g_slist_free_full(command->setup_menu.items, destroy_stk_item);
+ l_free(command->setup_menu.alpha_id);
+ l_queue_destroy(command->setup_menu.items, destroy_stk_item);
}
static enum stk_command_parse_result parse_setup_menu(
@@ -2666,8 +2617,8 @@
static void destroy_select_item(struct stk_command *command)
{
- g_free(command->select_item.alpha_id);
- g_slist_free_full(command->select_item.items, destroy_stk_item);
+ l_free(command->select_item.alpha_id);
+ l_queue_destroy(command->select_item.items, destroy_stk_item);
}
static enum stk_command_parse_result parse_select_item(
@@ -2707,7 +2658,7 @@
command->destructor = destroy_select_item;
- if (status == STK_PARSE_RESULT_OK && obj->items == NULL)
+ if (status == STK_PARSE_RESULT_OK && l_queue_isempty(obj->items))
status = STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD;
CHECK_TEXT_AND_ICON(obj->alpha_id, obj->icon_id.id);
@@ -2717,8 +2668,8 @@
static void destroy_send_sms(struct stk_command *command)
{
- g_free(command->send_sms.alpha_id);
- g_free(command->send_sms.cdma_sms.array);
+ l_free(command->send_sms.alpha_id);
+ l_free(command->send_sms.cdma_sms.array);
}
static enum stk_command_parse_result parse_send_sms(
@@ -2779,9 +2730,8 @@
/* packing is needed */
if (command->qualifier & 0x01) {
- if (sms_decode_unpacked_stk_pdu(gsm_tpdu.tpdu, gsm_tpdu.len,
- &obj->gsm_sms) !=
- TRUE) {
+ if (!sms_decode_unpacked_stk_pdu(gsm_tpdu.tpdu, gsm_tpdu.len,
+ &obj->gsm_sms)) {
status = STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD;
goto out;
}
@@ -2815,15 +2765,15 @@
obj->gsm_sms.sc_addr.number_type = (sc_address.ton_npi >> 4) & 7;
out:
- g_free(sc_address.number);
+ l_free(sc_address.number);
return status;
}
static void destroy_send_ss(struct stk_command *command)
{
- g_free(command->send_ss.alpha_id);
- g_free(command->send_ss.ss.ss);
+ l_free(command->send_ss.alpha_id);
+ l_free(command->send_ss.ss.ss);
}
static enum stk_command_parse_result parse_send_ss(struct stk_command *command,
@@ -2855,7 +2805,7 @@
static void destroy_send_ussd(struct stk_command *command)
{
- g_free(command->send_ussd.alpha_id);
+ l_free(command->send_ussd.alpha_id);
}
static enum stk_command_parse_result parse_send_ussd(
@@ -2888,9 +2838,9 @@
static void destroy_setup_call(struct stk_command *command)
{
- g_free(command->setup_call.alpha_id_usr_cfm);
- g_free(command->setup_call.addr.number);
- g_free(command->setup_call.alpha_id_call_setup);
+ l_free(command->setup_call.alpha_id_usr_cfm);
+ l_free(command->setup_call.addr.number);
+ l_free(command->setup_call.alpha_id_call_setup);
}
static enum stk_command_parse_result parse_setup_call(
@@ -2942,8 +2892,8 @@
static void destroy_refresh(struct stk_command *command)
{
- g_slist_free_full(command->refresh.file_list, g_free);
- g_free(command->refresh.alpha_id);
+ l_queue_destroy(command->refresh.file_list, l_free);
+ l_free(command->refresh.alpha_id);
}
static enum stk_command_parse_result parse_refresh(
@@ -3122,7 +3072,7 @@
static void destroy_setup_idle_mode_text(struct stk_command *command)
{
- g_free(command->setup_idle_mode_text.text);
+ l_free(command->setup_idle_mode_text.text);
}
static enum stk_command_parse_result parse_setup_idle_mode_text(
@@ -3159,8 +3109,8 @@
static void destroy_run_at_command(struct stk_command *command)
{
- g_free(command->run_at_command.alpha_id);
- g_free(command->run_at_command.at_command);
+ l_free(command->run_at_command.alpha_id);
+ l_free(command->run_at_command.at_command);
}
static enum stk_command_parse_result parse_run_at_command(
@@ -3198,8 +3148,8 @@
static void destroy_send_dtmf(struct stk_command *command)
{
- g_free(command->send_dtmf.alpha_id);
- g_free(command->send_dtmf.dtmf);
+ l_free(command->send_dtmf.alpha_id);
+ l_free(command->send_dtmf.dtmf);
}
static enum stk_command_parse_result parse_send_dtmf(
@@ -3255,14 +3205,14 @@
static void destroy_launch_browser(struct stk_command *command)
{
- g_free(command->launch_browser.url);
- g_free(command->launch_browser.bearer.array);
- g_slist_free_full(command->launch_browser.prov_file_refs, g_free);
- g_free(command->launch_browser.text_gateway_proxy_id);
- g_free(command->launch_browser.alpha_id);
- g_free(command->launch_browser.network_name.array);
- g_free(command->launch_browser.text_usr);
- g_free(command->launch_browser.text_passwd);
+ l_free(command->launch_browser.url);
+ l_free(command->launch_browser.bearer.array);
+ l_queue_destroy(command->launch_browser.prov_file_refs, l_free);
+ l_free(command->launch_browser.text_gateway_proxy_id);
+ l_free(command->launch_browser.alpha_id);
+ l_free(command->launch_browser.network_name.array);
+ l_free(command->launch_browser.text_usr);
+ l_free(command->launch_browser.text_passwd);
}
static enum stk_command_parse_result parse_launch_browser(
@@ -3314,10 +3264,10 @@
static void destroy_open_channel(struct stk_command *command)
{
- g_free(command->open_channel.alpha_id);
- g_free(command->open_channel.apn);
- g_free(command->open_channel.text_usr);
- g_free(command->open_channel.text_passwd);
+ l_free(command->open_channel.alpha_id);
+ l_free(command->open_channel.apn);
+ l_free(command->open_channel.text_usr);
+ l_free(command->open_channel.text_passwd);
}
static enum stk_command_parse_result parse_open_channel(
@@ -3378,7 +3328,7 @@
static void destroy_close_channel(struct stk_command *command)
{
- g_free(command->close_channel.alpha_id);
+ l_free(command->close_channel.alpha_id);
}
static enum stk_command_parse_result parse_close_channel(
@@ -3414,7 +3364,7 @@
static void destroy_receive_data(struct stk_command *command)
{
- g_free(command->receive_data.alpha_id);
+ l_free(command->receive_data.alpha_id);
}
static enum stk_command_parse_result parse_receive_data(
@@ -3453,8 +3403,8 @@
static void destroy_send_data(struct stk_command *command)
{
- g_free(command->send_data.alpha_id);
- g_free(command->send_data.data.array);
+ l_free(command->send_data.alpha_id);
+ l_free(command->send_data.data.array);
}
static enum stk_command_parse_result parse_send_data(
@@ -3509,9 +3459,9 @@
static void destroy_service_search(struct stk_command *command)
{
- g_free(command->service_search.alpha_id);
- g_free(command->service_search.serv_search.ser_search);
- g_free(command->service_search.dev_filter.dev_filter);
+ l_free(command->service_search.alpha_id);
+ l_free(command->service_search.serv_search.ser_search);
+ l_free(command->service_search.dev_filter.dev_filter);
}
static enum stk_command_parse_result parse_service_search(
@@ -3546,8 +3496,8 @@
static void destroy_get_service_info(struct stk_command *command)
{
- g_free(command->get_service_info.alpha_id);
- g_free(command->get_service_info.attr_info.attr_info);
+ l_free(command->get_service_info.alpha_id);
+ l_free(command->get_service_info.attr_info.attr_info);
}
static enum stk_command_parse_result parse_get_service_info(
@@ -3580,7 +3530,7 @@
static void destroy_declare_service(struct stk_command *command)
{
- g_free(command->declare_service.serv_rec.serv_rec);
+ l_free(command->declare_service.serv_rec.serv_rec);
}
static enum stk_command_parse_result parse_declare_service(
@@ -3642,8 +3592,8 @@
static void destroy_retrieve_mms(struct stk_command *command)
{
- g_free(command->retrieve_mms.alpha_id);
- g_slist_free_full(command->retrieve_mms.mms_rec_files, g_free);
+ l_free(command->retrieve_mms.alpha_id);
+ l_queue_destroy(command->retrieve_mms.mms_rec_files, l_free);
}
static enum stk_command_parse_result parse_retrieve_mms(
@@ -3689,8 +3639,8 @@
static void destroy_submit_mms(struct stk_command *command)
{
- g_free(command->submit_mms.alpha_id);
- g_slist_free_full(command->submit_mms.mms_subm_files, g_free);
+ l_free(command->submit_mms.alpha_id);
+ l_queue_destroy(command->submit_mms.mms_subm_files, l_free);
}
static enum stk_command_parse_result parse_submit_mms(
@@ -3730,7 +3680,7 @@
static void destroy_display_mms(struct stk_command *command)
{
- g_slist_free_full(command->display_mms.mms_subm_files, g_free);
+ l_queue_destroy(command->display_mms.mms_subm_files, l_free);
}
static enum stk_command_parse_result parse_display_mms(
@@ -3868,12 +3818,12 @@
};
}
-struct stk_command *stk_command_new_from_pdu(const unsigned char *pdu,
+struct stk_command *stk_command_new_from_pdu(const uint8_t *pdu,
unsigned int len)
{
struct ber_tlv_iter ber;
struct comprehension_tlv_iter iter;
- const unsigned char *data;
+ const uint8_t *data;
struct stk_command *command;
ber_tlv_iter_init(&ber, pdu, len);
@@ -3944,9 +3894,8 @@
g_free(command);
}
-static gboolean stk_tlv_builder_init(struct stk_tlv_builder *iter,
- unsigned char *pdu,
- unsigned int size)
+static bool stk_tlv_builder_init(struct stk_tlv_builder *iter,
+ uint8_t *pdu, unsigned int size)
{
iter->value = NULL;
iter->len = 0;
@@ -3954,40 +3903,40 @@
return comprehension_tlv_builder_init(&iter->ctlv, pdu, size);
}
-static gboolean stk_tlv_builder_recurse(struct stk_tlv_builder *iter,
+static bool stk_tlv_builder_recurse(struct stk_tlv_builder *iter,
struct ber_tlv_builder *btlv,
- unsigned char tag)
+ uint8_t tag)
{
iter->value = NULL;
iter->len = 0;
if (ber_tlv_builder_next(btlv, tag >> 6, (tag >> 5) & 1,
tag & 0x1f) != TRUE)
- return FALSE;
+ return false;
return ber_tlv_builder_recurse_comprehension(btlv, &iter->ctlv);
}
-static gboolean stk_tlv_builder_open_container(struct stk_tlv_builder *iter,
- gboolean cr,
- unsigned char shorttag,
- gboolean relocatable)
+static bool stk_tlv_builder_open_container(struct stk_tlv_builder *iter,
+ bool cr,
+ uint8_t shorttag,
+ bool relocatable)
{
if (comprehension_tlv_builder_next(&iter->ctlv, cr, shorttag) != TRUE)
- return FALSE;
+ return false;
iter->len = 0;
iter->max_len = relocatable ? 0xff : 0x7f;
if (comprehension_tlv_builder_set_length(&iter->ctlv, iter->max_len) !=
TRUE)
- return FALSE;
+ return false;
iter->value = comprehension_tlv_builder_get_data(&iter->ctlv);
- return TRUE;
+ return true;
}
-static gboolean stk_tlv_builder_close_container(struct stk_tlv_builder *iter)
+static bool stk_tlv_builder_close_container(struct stk_tlv_builder *iter)
{
return comprehension_tlv_builder_set_length(&iter->ctlv, iter->len);
}
@@ -3998,123 +3947,119 @@
iter->ctlv.pdu + iter->len;
}
-static gboolean stk_tlv_builder_append_byte(struct stk_tlv_builder *iter,
- unsigned char num)
+static bool stk_tlv_builder_append_byte(struct stk_tlv_builder *iter,
+ uint8_t num)
{
if (iter->len >= iter->max_len)
- return FALSE;
+ return false;
iter->value[iter->len++] = num;
- return TRUE;
+ return true;
}
-static gboolean stk_tlv_builder_append_short(struct stk_tlv_builder *iter,
- unsigned short num)
+static bool stk_tlv_builder_append_short(struct stk_tlv_builder *iter,
+ uint16_t num)
{
if (iter->len + 2 > iter->max_len)
- return FALSE;
+ return false;
iter->value[iter->len++] = num >> 8;
iter->value[iter->len++] = num & 0xff;
- return TRUE;
+ return true;
}
-static gboolean stk_tlv_builder_append_gsm_packed(struct stk_tlv_builder *iter,
+static bool stk_tlv_builder_append_gsm_packed(struct stk_tlv_builder *iter,
const char *text)
{
unsigned int len;
- unsigned char *gsm;
+ uint8_t *gsm;
long written = 0;
if (text == NULL)
- return TRUE;
+ return true;
len = strlen(text);
gsm = convert_utf8_to_gsm(text, len, NULL, &written, 0);
if (gsm == NULL && len > 0)
- return FALSE;
+ return false;
if (iter->len + (written * 7 + 7) / 8 >= iter->max_len) {
- g_free(gsm);
- return FALSE;
+ l_free(gsm);
+ return false;
}
- pack_7bit_own_buf(gsm, len, 0, FALSE, &written, 0,
+ pack_7bit_own_buf(gsm, len, 0, false, &written, 0,
iter->value + iter->len + 1);
- g_free(gsm);
+ l_free(gsm);
if (written < 1 && len > 0)
- return FALSE;
+ return false;
iter->value[iter->len++] = 0x00;
iter->len += written;
- return TRUE;
+ return true;
}
-static gboolean stk_tlv_builder_append_gsm_unpacked(
- struct stk_tlv_builder *iter,
+static bool stk_tlv_builder_append_gsm_unpacked(struct stk_tlv_builder *iter,
const char *text)
{
unsigned int len;
- unsigned char *gsm;
+ uint8_t *gsm;
long written = 0;
if (text == NULL)
- return TRUE;
+ return true;
len = strlen(text);
gsm = convert_utf8_to_gsm(text, len, NULL, &written, 0);
if (gsm == NULL && len > 0)
- return FALSE;
+ return false;
if (iter->len + written >= iter->max_len) {
- g_free(gsm);
- return FALSE;
+ l_free(gsm);
+ return false;
}
iter->value[iter->len++] = 0x04;
memcpy(iter->value + iter->len, gsm, written);
iter->len += written;
- g_free(gsm);
+ l_free(gsm);
- return TRUE;
+ return true;
}
-static gboolean stk_tlv_builder_append_ucs2(struct stk_tlv_builder *iter,
+static bool stk_tlv_builder_append_ucs2(struct stk_tlv_builder *iter,
const char *text)
{
- unsigned char *ucs2;
- gsize gwritten;
+ L_AUTO_FREE_VAR(uint8_t *, ucs2);
+ size_t ucs2_len;
- ucs2 = (unsigned char *) g_convert((const gchar *) text, -1,
- "UCS-2BE", "UTF-8//TRANSLIT",
- NULL, &gwritten, NULL);
- if (ucs2 == NULL)
- return FALSE;
-
- if (iter->len + gwritten >= iter->max_len) {
- g_free(ucs2);
- return FALSE;
- }
+ ucs2 = l_utf8_to_ucs2be(text, &ucs2_len);
+ if (!ucs2)
+ return false;
- iter->value[iter->len++] = 0x08;
+ /* Don't include terminating NULL */
+ ucs2_len -= 2;
- memcpy(iter->value + iter->len, ucs2, gwritten);
- iter->len += gwritten;
+ if (iter->len + ucs2_len >= iter->max_len)
+ return false;
- g_free(ucs2);
+ iter->value[iter->len++] = 0x08;
+
+ memcpy(iter->value + iter->len, ucs2, ucs2_len);
+ iter->len += ucs2_len;
- return TRUE;
+ return true;
}
-static gboolean stk_tlv_builder_append_text(struct stk_tlv_builder *iter,
+static bool stk_tlv_builder_append_text(struct stk_tlv_builder *iter,
int dcs, const char *text)
{
- gboolean ret;
+ bool ret;
switch (dcs) {
case 0x00:
@@ -4126,180 +4071,180 @@
case -1:
ret = stk_tlv_builder_append_gsm_unpacked(iter, text);
- if (ret == TRUE)
+ if (ret)
return ret;
return stk_tlv_builder_append_ucs2(iter, text);
}
- return FALSE;
+ return false;
}
-static inline gboolean stk_tlv_builder_append_bytes(struct stk_tlv_builder *iter,
- const unsigned char *data,
+static inline bool stk_tlv_builder_append_bytes(struct stk_tlv_builder *iter,
+ const uint8_t *data,
unsigned int length)
{
if (iter->len + length > iter->max_len)
- return FALSE;
+ return false;
memcpy(iter->value + iter->len, data, length);
iter->len += length;
- return TRUE;
+ return true;
}
/* Described in TS 102.223 Section 8.1 */
-static gboolean build_dataobj_address(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_address(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_address *addr = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_ADDRESS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_ADDRESS;
unsigned int len;
- unsigned char number[128];
+ uint8_t number[128];
if (addr->number == NULL)
- return TRUE;
+ return true;
len = (strlen(addr->number) + 1) / 2;
sim_encode_bcd_number(addr->number, number);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, addr->ton_npi) &&
stk_tlv_builder_append_bytes(tlv, number, len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.2 */
-static gboolean build_dataobj_alpha_id(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_alpha_id(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- unsigned char tag = STK_DATA_OBJECT_TYPE_ALPHA_ID;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_ALPHA_ID;
int len;
- unsigned char *string;
+ uint8_t *string;
if (data == NULL)
- return TRUE;
+ return true;
if (strlen(data) == 0)
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_close_container(tlv);
string = utf8_to_sim_string(data, -1, &len);
if (string == NULL)
- return FALSE;
+ return false;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_bytes(tlv, string, len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.3 */
-static gboolean build_dataobj_subaddress(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_subaddress(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_subaddress *sa = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_SUBADDRESS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_SUBADDRESS;
- if (sa->has_subaddr == FALSE)
- return TRUE;
+ if (!sa->has_subaddr)
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, sa->subaddr, sa->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.4 */
-static gboolean build_dataobj_ccp(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_ccp(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_ccp *ccp = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CCP;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CCP;
if (ccp->len == 0)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, ccp->len) &&
stk_tlv_builder_append_bytes(tlv, ccp->ccp, ccp->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.5 */
-static gboolean build_dataobj_cbs_page(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_cbs_page(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct cbs *page = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CBS_PAGE;
- unsigned char pdu[88];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CBS_PAGE;
+ uint8_t pdu[88];
if (cbs_encode(page, NULL, pdu) == FALSE)
- return FALSE;
+ return false;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_bytes(tlv, pdu, 88) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.6 */
-static gboolean build_dataobj_item_id(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_item_id(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- const unsigned char *item_id = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_ITEM_ID;
+ const uint8_t *item_id = data;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_ITEM_ID;
if (*item_id == 0)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *item_id) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.8 */
-static gboolean build_dataobj_duration(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_duration(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_duration *duration = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_DURATION;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_DURATION;
if (duration->interval == 0x00)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, duration->unit) &&
stk_tlv_builder_append_byte(tlv, duration->interval) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.12 */
-static gboolean build_dataobj_result(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_result(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_result *result = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_RESULT;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_RESULT;
- if (stk_tlv_builder_open_container(tlv, cr, tag, FALSE) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, false))
+ return false;
- if (stk_tlv_builder_append_byte(tlv, result->type) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, result->type))
+ return false;
if (result->additional_len > 0)
- if (stk_tlv_builder_append_bytes(tlv, result->additional,
- result->additional_len) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_append_bytes(tlv, result->additional,
+ result->additional_len))
+ return false;
return stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.13 */
-static gboolean build_dataobj_gsm_sms_tpdu(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_gsm_sms_tpdu(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct sms_deliver *msg = data;
struct sms sms;
- unsigned char tag = STK_DATA_OBJECT_TYPE_GSM_SMS_TPDU;
- unsigned char tpdu[165];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_GSM_SMS_TPDU;
+ uint8_t tpdu[165];
int tpdu_len;
sms.type = SMS_TYPE_DELIVER;
@@ -4307,49 +4252,49 @@
memcpy(&sms.deliver, msg, sizeof(sms.deliver));
if (sms_encode(&sms, NULL, &tpdu_len, tpdu) == FALSE)
- return FALSE;
+ return false;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_bytes(tlv, tpdu + 1, tpdu_len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.14 */
-static gboolean build_dataobj_ss_string(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_ss_string(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_address *addr = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_SS_STRING;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_SS_STRING;
unsigned int len;
- unsigned char number[128];
+ uint8_t number[128];
if (addr->number == NULL)
- return TRUE;
+ return true;
len = (strlen(addr->number) + 1) / 2;
sim_encode_bcd_number(addr->number, number);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, addr->ton_npi) &&
stk_tlv_builder_append_bytes(tlv, number, len) &&
stk_tlv_builder_close_container(tlv);
}
/* Defined in TS 102.223 Section 8.15 */
-static gboolean build_dataobj_text(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_text(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_answer_text *text = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_TEXT;
- gboolean ret;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_TEXT;
+ bool ret;
if (text->text == NULL && !text->yesno)
- return TRUE;
+ return true;
- if (stk_tlv_builder_open_container(tlv, cr, tag, TRUE) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, true))
+ return false;
- if (text->yesno == TRUE) {
+ if (text->yesno) {
/*
* Section 6.8.5:
* When the terminal issues [...] command qualifier set
@@ -4357,8 +4302,8 @@
* answer is "positive" and the value '00' when the
* answer is "negative" in the text string data object.
*/
- if (stk_tlv_builder_append_byte(tlv, 0x04) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, 0x04))
+ return false;
ret = stk_tlv_builder_append_byte(tlv,
text->text ? 0x01 : 0x00);
@@ -4367,135 +4312,134 @@
else
ret = stk_tlv_builder_append_text(tlv, -1, text->text);
- if (ret != TRUE)
+ if (!ret)
return ret;
return stk_tlv_builder_close_container(tlv);
}
/* Defined in TS 102.223 Section 8.15 - USSD specific case*/
-static gboolean build_dataobj_ussd_text(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_ussd_text(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_ussd_text *text = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_TEXT;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_TEXT;
- if (text->has_text == FALSE)
- return TRUE;
+ if (!text->has_text)
+ return true;
- if (stk_tlv_builder_open_container(tlv, cr, tag, TRUE) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, true))
+ return false;
if (text->len > 0) {
- if (stk_tlv_builder_append_byte(tlv, text->dcs) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, text->dcs))
+ return false;
- if (stk_tlv_builder_append_bytes(tlv, text->text,
- text->len) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_bytes(tlv, text->text, text->len))
+ return false;
}
return stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.17 */
-static gboolean build_dataobj_ussd_string(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_ussd_string(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_ussd_string *ussd = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_USSD_STRING;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_USSD_STRING;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, ussd->dcs) &&
stk_tlv_builder_append_bytes(tlv, ussd->string, ussd->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.18 */
-static gboolean build_dataobj_file_list(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_file_list(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- GSList *l = (void *) data;
+ struct l_queue *fl = (void *) data;
+ const struct l_queue_entry *entry = l_queue_get_entries(fl);
const struct stk_file *file;
- unsigned char tag = STK_DATA_OBJECT_TYPE_FILE_LIST;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_FILE_LIST;
- if (stk_tlv_builder_open_container(tlv, cr, tag, TRUE) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, true))
+ return false;
- if (stk_tlv_builder_append_byte(tlv, g_slist_length(l)) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, l_queue_length(fl)))
+ return false;
- for (; l; l = l->next) {
- file = l->data;
+ for (; entry; entry = entry->next) {
+ file = entry->data;
- if (stk_tlv_builder_append_bytes(tlv, file->file,
- file->len) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_bytes(tlv, file->file, file->len))
+ return false;
}
return stk_tlv_builder_close_container(tlv);
}
/* Shortcut for a single File element */
-static gboolean build_dataobj_file(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_file(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- GSList l = {
- .data = (void *) data,
- .next = NULL,
- };
+ struct l_queue *fl = l_queue_new();
+ bool ret;
- return build_dataobj_file_list(tlv, &l, cr);
+ l_queue_push_tail(fl, (void *) data);
+ ret = build_dataobj_file_list(tlv, fl, cr);
+
+ l_queue_destroy(fl, NULL);
+ return ret;
}
/* Described in TS 102.223 Section 8.19 */
-static gboolean build_dataobj_location_info(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_location_info(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_location_info *li = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_LOCATION_INFO;
- guint8 mccmnc[3];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_LOCATION_INFO;
+ uint8_t mccmnc[3];
if (li->mcc[0] == '\0')
- return TRUE;
+ return true;
sim_encode_mcc_mnc(mccmnc, li->mcc, li->mnc);
- if (stk_tlv_builder_open_container(tlv, cr, tag, FALSE) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, false))
+ return false;
- if (stk_tlv_builder_append_bytes(tlv, mccmnc, 3) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_append_bytes(tlv, mccmnc, 3))
+ return false;
- if (stk_tlv_builder_append_short(tlv, li->lac_tac) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_append_short(tlv, li->lac_tac))
+ return false;
- if (li->has_ci && stk_tlv_builder_append_short(tlv, li->ci) == FALSE)
- return FALSE;
+ if (li->has_ci && !stk_tlv_builder_append_short(tlv, li->ci))
+ return false;
- if (li->has_ext_ci &&
- stk_tlv_builder_append_short(tlv, li->ext_ci) == FALSE)
- return FALSE;
+ if (li->has_ext_ci && !stk_tlv_builder_append_short(tlv, li->ext_ci))
+ return false;
if (li->has_eutran_ci) {
- if (stk_tlv_builder_append_short(tlv,
- li->eutran_ci >> 12) == FALSE)
- return FALSE;
-
- if (stk_tlv_builder_append_short(tlv,
- (li->eutran_ci << 4) | 0xf) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_append_short(tlv, li->eutran_ci >> 12))
+ return false;
+
+ if (!stk_tlv_builder_append_short(tlv,
+ (li->eutran_ci << 4) | 0xf))
+ return false;
}
return stk_tlv_builder_close_container(tlv);
}
-static gboolean build_empty_dataobj_location_info(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_empty_dataobj_location_info(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- unsigned char tag = STK_DATA_OBJECT_TYPE_LOCATION_INFO;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_LOCATION_INFO;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_close_container(tlv);
}
@@ -4504,19 +4448,19 @@
*
* See format note in parse_dataobj_imei.
*/
-static gboolean build_dataobj_imei(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_imei(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
char byte0[3];
const char *imei = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_IMEI;
- unsigned char value[8];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_IMEI;
+ uint8_t value[8];
if (imei == NULL)
- return TRUE;
+ return true;
if (strlen(imei) != 15)
- return FALSE;
+ return false;
byte0[0] = '*';
byte0[1] = imei[0];
@@ -4524,58 +4468,58 @@
sim_encode_bcd_number(byte0, value);
sim_encode_bcd_number(imei + 1, value + 1);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, value, 8) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.21 */
-static gboolean build_dataobj_help_request(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_help_request(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- const ofono_bool_t *help = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_HELP_REQUEST;
+ const bool *help = data;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_HELP_REQUEST;
- if (*help != TRUE)
- return TRUE;
+ if (*help != true)
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.22 */
-static gboolean build_dataobj_network_measurement_results(
+static bool build_dataobj_network_measurement_results(
struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+ const void *data, bool cr)
{
const struct stk_common_byte_array *nmr = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_NETWORK_MEASUREMENT_RESULTS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_NETWORK_MEASUREMENT_RESULTS;
- if (stk_tlv_builder_open_container(tlv, cr, tag, FALSE) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, false))
+ return false;
- if (nmr->len > 0 && stk_tlv_builder_append_bytes(tlv,
- nmr->array, nmr->len) == FALSE)
- return FALSE;
+ if (nmr->len > 0 && !stk_tlv_builder_append_bytes(tlv,
+ nmr->array, nmr->len))
+ return false;
return stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.25 */
-static gboolean build_dataobj_event_list(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_event_list(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_event_list *list = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_EVENT_LIST;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_EVENT_LIST;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, list->list, list->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Shortcut for a single Event type */
-static gboolean build_dataobj_event_type(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_event_type(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_event_list list = {
.list = { *(enum stk_event_type *) data },
@@ -4586,47 +4530,47 @@
}
/* Described in TS 102.223 Section 8.26 */
-static gboolean build_dataobj_cause(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_cause(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_cause *cause = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CAUSE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CAUSE;
- if (cause->has_cause == FALSE)
- return TRUE;
+ if (!cause->has_cause)
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, cause->cause, cause->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.27 */
-static gboolean build_dataobj_location_status(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_location_status(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const enum stk_service_state *state = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_LOCATION_STATUS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_LOCATION_STATUS;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *state) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.28 */
-static gboolean build_dataobj_transaction_ids(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_transaction_ids(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_transaction_id *id = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_TRANSACTION_ID;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_TRANSACTION_ID;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, id->list, id->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Shortcut for a single Transaction ID */
-static gboolean build_dataobj_transaction_id(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_transaction_id(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_transaction_id ids = {
.list = { *(uint8_t *) data },
@@ -4637,19 +4581,19 @@
}
/* Described in 3GPP 31.111 Section 8.29 */
-static gboolean build_dataobj_bcch_channel_list(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_bcch_channel_list(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_bcch_channel_list *list = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_BCCH_CHANNEL_LIST;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BCCH_CHANNEL_LIST;
unsigned int i, bytes, pos, shift;
- unsigned char value;
+ uint8_t value;
- if (list->has_list == FALSE)
- return TRUE;
+ if (!list->has_list)
+ return true;
- if (stk_tlv_builder_open_container(tlv, cr, tag, TRUE) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, true))
+ return false;
bytes = (list->num * 10 + 7) / 8;
for (i = 0; i < bytes; i++) {
@@ -4662,35 +4606,35 @@
if (shift > 2)
value |= list->channels[pos - 1] << (10 - shift);
- if (stk_tlv_builder_append_byte(tlv, value) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, value))
+ return false;
}
return stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.30 */
-static gboolean build_dataobj_cc_requested_action(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_cc_requested_action(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_common_byte_array *action = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CALL_CONTROL_REQUESTED_ACTION;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CALL_CONTROL_REQUESTED_ACTION;
if (action->array == NULL)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, action->array, action->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.33 */
-static gboolean build_dataobj_card_reader_status(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_card_reader_status(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_reader_status *status = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CARD_READER_STATUS;
- unsigned char byte;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CARD_READER_STATUS;
+ uint8_t byte;
byte = status->id |
(status->removable << 3) |
@@ -4699,38 +4643,38 @@
(status->card_present << 6) |
(status->card_powered << 7);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, byte) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.37 */
-static gboolean build_dataobj_timer_id(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_timer_id(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- const unsigned char *id = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_TIMER_ID;
+ const uint8_t *id = data;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_TIMER_ID;
if (id[0] == 0)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, id[0]) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.38 */
-static gboolean build_dataobj_timer_value(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_timer_value(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_timer_value *value = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_TIMER_VALUE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_TIMER_VALUE;
- if (value->has_value == FALSE)
- return TRUE;
+ if (!value->has_value)
+ return true;
#define TO_BCD(bin) ((((bin) / 10) & 0xf) | (((bin) % 10) << 4))
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, TO_BCD(value->hour)) &&
stk_tlv_builder_append_byte(tlv, TO_BCD(value->minute)) &&
stk_tlv_builder_append_byte(tlv, TO_BCD(value->second)) &&
@@ -4739,34 +4683,34 @@
}
/* Described in TS 102.223 Section 8.39 */
-static gboolean build_dataobj_datetime_timezone(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_datetime_timezone(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct sms_scts *scts = data;
- unsigned char value[7];
+ uint8_t value[7];
int offset = 0;
- unsigned char tag = STK_DATA_OBJECT_TYPE_DATETIME_TIMEZONE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_DATETIME_TIMEZONE;
if (scts->month == 0 && scts->day == 0)
- return TRUE;
+ return true;
if (sms_encode_scts(scts, value, &offset) != TRUE)
- return FALSE;
+ return false;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, value, 7) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.41 */
-static gboolean build_dataobj_at_response(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_at_response(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- unsigned char tag = STK_DATA_OBJECT_TYPE_AT_RESPONSE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_AT_RESPONSE;
int len;
if (data == NULL)
- return TRUE;
+ return true;
/*
* "If the AT Response string is longer than the maximum length
@@ -4777,82 +4721,82 @@
if (len > 240) /* Safe pick */
len = 240;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_bytes(tlv, data, len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.42 */
-static gboolean build_dataobj_bc_repeat(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_bc_repeat(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- unsigned char tag = STK_DATA_OBJECT_TYPE_BC_REPEAT_INDICATOR;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BC_REPEAT_INDICATOR;
const struct stk_bc_repeat *bcr = data;
- if (bcr->has_bc_repeat == FALSE)
- return TRUE;
+ if (!bcr->has_bc_repeat)
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_byte(tlv, bcr->value) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.45 */
-static gboolean build_dataobj_language(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_language(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- unsigned char tag = STK_DATA_OBJECT_TYPE_LANGUAGE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_LANGUAGE;
if (data == NULL)
- return TRUE;
+ return true;
/*
* Coded as two GSM 7-bit characters with eighth bit clear. Since
* ISO 639-2 codes use only english alphabet letters, no conversion
* from UTF-8 to GSM is needed.
*/
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, data, 2) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in 3GPP TS 31.111 Section 8.46 */
-static gboolean build_dataobj_timing_advance(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_timing_advance(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_timing_advance *tadv = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_TIMING_ADVANCE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_TIMING_ADVANCE;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, tadv->status) &&
stk_tlv_builder_append_byte(tlv, tadv->advance) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.51 */
-static gboolean build_dataobj_browser_termination_cause(
+static bool build_dataobj_browser_termination_cause(
struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+ const void *data, bool cr)
{
const enum stk_browser_termination_cause *cause = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_BROWSER_TERMINATION_CAUSE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BROWSER_TERMINATION_CAUSE;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *cause) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.52 */
-static gboolean build_dataobj_bearer_description(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_bearer_description(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_bearer_description *bd = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_BEARER_DESCRIPTION;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BEARER_DESCRIPTION;
if (bd->type != STK_BEARER_TYPE_GPRS_UTRAN)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, bd->type) &&
stk_tlv_builder_append_byte(tlv,
bd->gprs.precedence) &&
@@ -4870,49 +4814,49 @@
}
/* Described in TS 102.223 Section 8.53 */
-static gboolean build_dataobj_channel_data(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_channel_data(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_common_byte_array *cd = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CHANNEL_DATA;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CHANNEL_DATA;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_bytes(tlv, cd->array, cd->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.54 */
-static gboolean build_dataobj_channel_data_length(
+static bool build_dataobj_channel_data_length(
struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+ const void *data, bool cr)
{
- const unsigned short *length = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CHANNEL_DATA_LENGTH;
+ const uint16_t *length = data;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CHANNEL_DATA_LENGTH;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, MIN(*length, 255)) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.55 */
-static gboolean build_dataobj_buffer_size(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_buffer_size(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- const unsigned short *buf_size = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_BUFFER_SIZE;
+ const uint16_t *buf_size = data;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BUFFER_SIZE;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_short(tlv, *buf_size) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.56 */
-static gboolean build_dataobj_channel_status(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_channel_status(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_channel *channel = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_CHANNEL_STATUS;
- unsigned char byte[2];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_CHANNEL_STATUS;
+ uint8_t byte[2];
switch (channel->status) {
case STK_CHANNEL_PACKET_DATA_SERVICE_NOT_ACTIVATED:
@@ -4935,33 +4879,33 @@
break;
}
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, byte, 2) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.58 */
-static gboolean build_dataobj_other_address(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_other_address(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_other_address *addr = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_OTHER_ADDRESS;
- gboolean ok = FALSE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_OTHER_ADDRESS;
+ bool ok = false;
if (!addr->type)
- return TRUE;
+ return true;
- if (stk_tlv_builder_open_container(tlv, cr, tag, FALSE) == FALSE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, false))
+ return false;
switch (addr->type) {
case STK_ADDRESS_AUTO:
- ok = TRUE;
+ ok = true;
break;
case STK_ADDRESS_IPV4:
ok = stk_tlv_builder_append_byte(tlv, addr->type) &&
stk_tlv_builder_append_bytes(tlv,
- (const guint8 *) &addr->addr.ipv4, 4);
+ (const uint8_t *) &addr->addr.ipv4, 4);
break;
case STK_ADDRESS_IPV6:
ok = stk_tlv_builder_append_byte(tlv, addr->type) &&
@@ -4970,48 +4914,48 @@
}
if (!ok)
- return FALSE;
+ return false;
return stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.59 */
-static gboolean build_dataobj_uicc_te_interface(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_uicc_te_interface(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_uicc_te_interface *iface = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_UICC_TE_INTERFACE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_UICC_TE_INTERFACE;
if (iface->protocol == 0 && iface->port == 0)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, iface->protocol) &&
stk_tlv_builder_append_short(tlv, iface->port) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.61 */
-static gboolean build_dataobj_access_technologies(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_access_technologies(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_access_technologies *techs = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_ACCESS_TECHNOLOGY;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_ACCESS_TECHNOLOGY;
int i;
- if (stk_tlv_builder_open_container(tlv, cr, tag, FALSE) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, false))
+ return false;
for (i = 0; i < techs->length; i++)
- if (stk_tlv_builder_append_byte(tlv, techs->techs[i]) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, techs->techs[i]))
+ return false;
return stk_tlv_builder_close_container(tlv);
}
/* Shortcut for a single Access Technology */
-static gboolean build_dataobj_access_technology(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_access_technology(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_access_technologies techs = {
.techs = data,
@@ -5022,13 +4966,13 @@
}
/* Described in TS 102.223 Section 8.62 */
-static gboolean build_dataobj_display_parameters(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_display_parameters(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_display_parameters *params = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_DISPLAY_PARAMETERS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_DISPLAY_PARAMETERS;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, params->height) &&
stk_tlv_builder_append_byte(tlv, params->width) &&
stk_tlv_builder_append_byte(tlv, params->effects) &&
@@ -5036,13 +4980,13 @@
}
/* Described in TS 102.223 Section 8.63 */
-static gboolean build_dataobj_service_record(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_service_record(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_service_record *rec = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_SERVICE_RECORD;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_SERVICE_RECORD;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_byte(tlv, rec->tech_id) &&
stk_tlv_builder_append_byte(tlv, rec->serv_id) &&
stk_tlv_builder_append_bytes(tlv, rec->serv_rec, rec->len) &&
@@ -5050,21 +4994,21 @@
}
/* Described in TS 102.223 Section 8.68 */
-static gboolean build_dataobj_remote_entity_address(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_remote_entity_address(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_remote_entity_address *addr = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_REMOTE_ENTITY_ADDRESS;
- gboolean ok = FALSE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_REMOTE_ENTITY_ADDRESS;
+ bool ok = false;
- if (addr->has_address != TRUE)
- return TRUE;
+ if (!addr->has_address)
+ return true;
- if (stk_tlv_builder_open_container(tlv, cr, tag, TRUE) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, true))
+ return false;
- if (stk_tlv_builder_append_byte(tlv, addr->coding_type) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, addr->coding_type))
+ return false;
switch (addr->coding_type) {
case 0x00:
@@ -5076,38 +5020,38 @@
}
if (!ok)
- return FALSE;
+ return false;
return stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.69 */
-static gboolean build_dataobj_esn(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_esn(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
- const guint32 *esn = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_ESN;
+ const uint32_t *esn = data;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_ESN;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_short(tlv, *esn >> 16) &&
stk_tlv_builder_append_short(tlv, *esn >> 0) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.72, 3GPP 24.008 Section 9.5.7 */
-static gboolean build_dataobj_pdp_context_params(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_pdp_context_params(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_common_byte_array *params = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_PDP_ACTIVATION_PARAMETER;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_PDP_ACTIVATION_PARAMETER;
if (params->len < 1)
- return TRUE;
+ return true;
if (params->len > 0x7f)
- return FALSE;
+ return false;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, params->array, params->len) &&
stk_tlv_builder_close_container(tlv);
}
@@ -5117,19 +5061,19 @@
*
* See format note in parse_dataobj_imeisv.
*/
-static gboolean build_dataobj_imeisv(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_imeisv(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
char byte0[3];
const char *imeisv = data;
- unsigned char value[9];
- unsigned char tag = STK_DATA_OBJECT_TYPE_IMEISV;
+ uint8_t value[9];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_IMEISV;
if (imeisv == NULL)
- return TRUE;
+ return true;
if (strlen(imeisv) != 16)
- return FALSE;
+ return false;
byte0[0] = '3';
byte0[1] = imeisv[0];
@@ -5137,193 +5081,192 @@
sim_encode_bcd_number(byte0, value);
sim_encode_bcd_number(imeisv + 1, value + 1);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, value, 9) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.75 */
-static gboolean build_dataobj_network_search_mode(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_network_search_mode(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const enum stk_network_search_mode *mode = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_NETWORK_SEARCH_MODE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_NETWORK_SEARCH_MODE;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *mode) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.76 */
-static gboolean build_dataobj_battery_state(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_battery_state(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const enum stk_battery_state *state = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_BATTERY_STATE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BATTERY_STATE;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *state) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.77 */
-static gboolean build_dataobj_browsing_status(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_browsing_status(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_common_byte_array *bs = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_BROWSING_STATUS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BROWSING_STATUS;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_bytes(tlv, bs->array, bs->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.79 */
-static gboolean build_dataobj_frames_information(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_frames_information(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_frames_info *info = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_FRAMES_INFO;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_FRAMES_INFO;
unsigned int i;
- if (stk_tlv_builder_open_container(tlv, cr, tag, FALSE) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_open_container(tlv, cr, tag, false))
+ return false;
- if (stk_tlv_builder_append_byte(tlv, info->id) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, info->id))
+ return false;
for (i = 0; i < info->len; i++) {
- if (stk_tlv_builder_append_byte(tlv,
- info->list[i].height) != TRUE)
- return FALSE;
- if (stk_tlv_builder_append_byte(tlv,
- info->list[i].width) != TRUE)
- return FALSE;
+ if (!stk_tlv_builder_append_byte(tlv, info->list[i].height))
+ return false;
+ if (!stk_tlv_builder_append_byte(tlv, info->list[i].width))
+ return false;
}
return stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.81 */
-static gboolean build_dataobj_meid(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_meid(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const char *meid = data;
- unsigned char value[8];
- unsigned char tag = STK_DATA_OBJECT_TYPE_MEID;
+ uint8_t value[8];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_MEID;
if (meid == NULL)
- return TRUE;
+ return true;
if (strlen(meid) != 16)
- return FALSE;
+ return false;
sim_encode_bcd_number(meid, value);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, value, 8) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.83 */
-static gboolean build_dataobj_mms_id(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_mms_id(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_mms_id *id = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_MMS_ID;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_MMS_ID;
/* Assume the length is never 0 for a valid ID, however the whole
* data object's presence is conditional. */
if (id->len == 0)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, id->id, id->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.84 */
-static gboolean build_dataobj_mms_transfer_status(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_mms_transfer_status(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_mms_transfer_status *mts = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_MMS_TRANSFER_STATUS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_MMS_TRANSFER_STATUS;
/*
* Assume the length is never 0 for a valid Result message, however
* the whole data object's presence is conditional.
*/
if (mts->len == 0)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, mts->status, mts->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.84 */
-static gboolean build_dataobj_i_wlan_access_status(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_i_wlan_access_status(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const enum stk_i_wlan_access_status *status = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_I_WLAN_ACCESS_STATUS;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_I_WLAN_ACCESS_STATUS;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *status) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.86 */
-static gboolean build_dataobj_mms_notification(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_mms_notification(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_common_byte_array *msg = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_MMS_NOTIFICATION;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_MMS_NOTIFICATION;
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_bytes(tlv, msg->array, msg->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.87 */
-static gboolean build_dataobj_last_envelope(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_last_envelope(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const ofono_bool_t *last = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_LAST_ENVELOPE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_LAST_ENVELOPE;
if (!*last)
- return TRUE;
+ return true;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 102.223 Section 8.88 */
-static gboolean build_dataobj_registry_application_data(
+static bool build_dataobj_registry_application_data(
struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+ const void *data, bool cr)
{
const struct stk_registry_application_data *rad = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_REGISTRY_APPLICATION_DATA;
- guint8 dcs, *name;
- gsize len;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_REGISTRY_APPLICATION_DATA;
+ uint8_t dcs;
+ L_AUTO_FREE_VAR(uint8_t *, name);
+ size_t len;
long gsmlen;
name = convert_utf8_to_gsm(rad->name, -1, NULL, &gsmlen, 0);
len = gsmlen;
dcs = 0x04;
- if (name == NULL) {
- name = (guint8 *) g_convert((const gchar *) rad->name, -1,
- "UCS-2BE", "UTF-8//TRANSLIT",
- NULL, &len, NULL);
- dcs = 0x08;
+ if (!name) {
+ name = l_utf8_to_ucs2be(rad->name, &len);
+ if (!name)
+ return false;
- if (name == NULL)
- return FALSE;
+ /* len includes null terminator, so strip it */
+ len -= 2;
+ dcs = 0x08;
}
- return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, true) &&
stk_tlv_builder_append_short(tlv, rad->port) &&
stk_tlv_builder_append_byte(tlv, dcs) &&
stk_tlv_builder_append_byte(tlv, rad->type) &&
@@ -5332,33 +5275,33 @@
}
/* Described in TS 102.223 Section 8.90 */
-static gboolean build_dataobj_broadcast_network_information(
+static bool build_dataobj_broadcast_network_information(
struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+ const void *data, bool cr)
{
const struct stk_broadcast_network_information *bni = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_BROADCAST_NETWORK_INFO;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_BROADCAST_NETWORK_INFO;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, bni->tech) &&
stk_tlv_builder_append_bytes(tlv, bni->loc_info, bni->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.91 / 3GPP 24.008 Section 10.5.5.15 */
-static gboolean build_dataobj_routing_area_id(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_routing_area_id(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_routing_area_info *rai = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_ROUTING_AREA_INFO;
- guint8 mccmnc[3];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_ROUTING_AREA_INFO;
+ uint8_t mccmnc[3];
if (rai->mcc[0] == 0)
- return TRUE;
+ return true;
sim_encode_mcc_mnc(mccmnc, rai->mcc, rai->mnc);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, mccmnc, 3) &&
stk_tlv_builder_append_short(tlv, rai->lac) &&
stk_tlv_builder_append_byte(tlv, rai->rac) &&
@@ -5366,67 +5309,67 @@
}
/* Described in TS 131.111 Section 8.92 */
-static gboolean build_dataobj_update_attach_type(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_update_attach_type(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const enum stk_update_attach_type *type = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_UPDATE_ATTACH_TYPE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_UPDATE_ATTACH_TYPE;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *type) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.93 */
-static gboolean build_dataobj_rejection_cause_code(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_rejection_cause_code(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const enum stk_rejection_cause_code *cause = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_REJECTION_CAUSE_CODE;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_REJECTION_CAUSE_CODE;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, *cause) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.98, 3GPP 24.301 Section 6.5.1 */
-static gboolean build_dataobj_eps_pdn_conn_params(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_eps_pdn_conn_params(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_common_byte_array *params = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_EPS_PDN_CONN_ACTIVATION_REQ;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_EPS_PDN_CONN_ACTIVATION_REQ;
if (params->len < 1)
- return TRUE;
+ return true;
if (params->len > 0x7f)
- return FALSE;
+ return false;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, params->array, params->len) &&
stk_tlv_builder_close_container(tlv);
}
/* Described in TS 131.111 Section 8.99 / 3GPP 24.301 Section 9.9.3.32 */
-static gboolean build_dataobj_tracking_area_id(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_dataobj_tracking_area_id(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_tracking_area_id *tai = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_TRACKING_AREA_ID;
- guint8 mccmnc[3];
+ uint8_t tag = STK_DATA_OBJECT_TYPE_TRACKING_AREA_ID;
+ uint8_t mccmnc[3];
if (tai->mcc[0] == 0)
- return TRUE;
+ return true;
sim_encode_mcc_mnc(mccmnc, tai->mcc, tai->mnc);
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_bytes(tlv, mccmnc, 3) &&
stk_tlv_builder_append_short(tlv, tai->tac) &&
stk_tlv_builder_close_container(tlv);
}
-static gboolean build_dataobj(struct stk_tlv_builder *tlv,
+static bool build_dataobj(struct stk_tlv_builder *tlv,
dataobj_writer builder_func, ...)
{
va_list args;
@@ -5436,20 +5379,20 @@
while (builder_func) {
unsigned int flags = va_arg(args, enum stk_data_object_flag);
const void *data = va_arg(args, const void *);
- gboolean cr = (flags & DATAOBJ_FLAG_CR) ? TRUE : FALSE;
+ bool cr = (flags & DATAOBJ_FLAG_CR) ? true : false;
- if (builder_func(tlv, data, cr) != TRUE)
- return FALSE;
+ if (!builder_func(tlv, data, cr))
+ return false;
builder_func = va_arg(args, dataobj_writer);
}
va_end(args);
- return TRUE;
+ return true;
}
-static gboolean build_setup_call(struct stk_tlv_builder *builder,
+static bool build_setup_call(struct stk_tlv_builder *builder,
const struct stk_response *response)
{
if (response->set_up_call.modified_result.cc_modified)
@@ -5469,7 +5412,7 @@
NULL);
}
-static gboolean build_local_info(struct stk_tlv_builder *builder,
+static bool build_local_info(struct stk_tlv_builder *builder,
const struct stk_response *response)
{
const struct stk_response_local_info *info =
@@ -5564,11 +5507,11 @@
NULL);
case 0x0f: /* Location Information for multiple NAAs */
- if (build_dataobj(builder,
+ if (!build_dataobj(builder,
build_dataobj_access_technologies,
0, &info->location_infos.access_techs,
- NULL) != TRUE)
- return FALSE;
+ NULL))
+ return false;
for (i = 0; i < info->location_infos.access_techs.length; i++) {
dataobj_writer location = build_dataobj_location_info;
@@ -5580,38 +5523,38 @@
if (info->location_infos.locations[i].mcc[0] == '\0')
location = build_empty_dataobj_location_info;
- if (build_dataobj(builder,
+ if (!build_dataobj(builder,
location,
0, &info->location_infos.locations[i],
- NULL) != TRUE)
- return FALSE;
+ NULL))
+ return false;
}
- return TRUE;
+ return true;
case 0x10: /* Network Measurement results for multiple NAAs */
- if (build_dataobj(builder,
+ if (!build_dataobj(builder,
build_dataobj_access_technologies,
0, &info->nmrs.access_techs,
- NULL) != TRUE)
- return FALSE;
+ NULL))
+ return false;
for (i = 0; i < info->nmrs.access_techs.length; i++)
- if (build_dataobj(builder,
+ if (!build_dataobj(builder,
build_dataobj_network_measurement_results,
0, &info->nmrs.nmrs[i].nmr,
build_dataobj_bcch_channel_list,
0, &info->nmrs.nmrs[i].bcch_ch_list,
- NULL) != TRUE)
- return FALSE;
+ NULL))
+ return false;
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
-static gboolean build_open_channel(struct stk_tlv_builder *builder,
+static bool build_open_channel(struct stk_tlv_builder *builder,
const struct stk_response *response)
{
const struct stk_response_open_channel *open_channel =
@@ -5619,10 +5562,11 @@
/* insert channel identifier only in case of success */
if (response->result.type == STK_RESULT_TYPE_SUCCESS) {
- if (build_dataobj(builder, build_dataobj_channel_status,
- 0, &open_channel->channel,
- NULL) != TRUE)
- return FALSE;
+ if (!build_dataobj(builder,
+ build_dataobj_channel_status,
+ 0, &open_channel->channel,
+ NULL))
+ return false;
}
return build_dataobj(builder,
@@ -5633,7 +5577,7 @@
NULL);
}
-static gboolean build_receive_data(struct stk_tlv_builder *builder,
+static bool build_receive_data(struct stk_tlv_builder *builder,
const struct stk_response *response)
{
const struct stk_response_receive_data *receive_data =
@@ -5641,41 +5585,44 @@
if (response->result.type != STK_RESULT_TYPE_SUCCESS &&
response->result.type != STK_RESULT_TYPE_MISSING_INFO)
- return TRUE;
+ return true;
if (receive_data->rx_data.len) {
- if (build_dataobj(builder, build_dataobj_channel_data,
+ if (!build_dataobj(builder,
+ build_dataobj_channel_data,
DATAOBJ_FLAG_CR,
&response->receive_data.rx_data,
- NULL) != TRUE)
- return FALSE;
+ NULL))
+ return false;
}
- return build_dataobj(builder, build_dataobj_channel_data_length,
+ return build_dataobj(builder,
+ build_dataobj_channel_data_length,
DATAOBJ_FLAG_CR,
&response->receive_data.rx_remaining,
NULL);
}
-static gboolean build_send_data(struct stk_tlv_builder *builder,
+static bool build_send_data(struct stk_tlv_builder *builder,
const struct stk_response *response)
{
if (response->result.type != STK_RESULT_TYPE_SUCCESS)
- return TRUE;
+ return true;
- return build_dataobj(builder, build_dataobj_channel_data_length,
+ return build_dataobj(builder,
+ build_dataobj_channel_data_length,
DATAOBJ_FLAG_CR,
&response->send_data.tx_avail,
NULL);
}
-const unsigned char *stk_pdu_from_response(const struct stk_response *response,
+const uint8_t *stk_pdu_from_response(const struct stk_response *response,
unsigned int *out_length)
{
struct stk_tlv_builder builder;
- gboolean ok = TRUE;
- unsigned char tag;
- static unsigned char pdu[512];
+ bool ok = true;
+ uint8_t tag;
+ static uint8_t pdu[512];
stk_tlv_builder_init(&builder, pdu, sizeof(pdu));
@@ -5685,19 +5632,19 @@
* and the Result TLV. Comprehension required everywhere.
*/
tag = STK_DATA_OBJECT_TYPE_COMMAND_DETAILS;
- if (stk_tlv_builder_open_container(&builder, TRUE, tag, FALSE) == FALSE)
+ if (!stk_tlv_builder_open_container(&builder, true, tag, false))
return NULL;
- if (stk_tlv_builder_append_byte(&builder, response->number) == FALSE)
+ if (!stk_tlv_builder_append_byte(&builder, response->number))
return NULL;
- if (stk_tlv_builder_append_byte(&builder, response->type) == FALSE)
+ if (!stk_tlv_builder_append_byte(&builder, response->type))
return NULL;
- if (stk_tlv_builder_append_byte(&builder, response->qualifier) == FALSE)
+ if (!stk_tlv_builder_append_byte(&builder, response->qualifier))
return NULL;
- if (stk_tlv_builder_close_container(&builder) == FALSE)
+ if (!stk_tlv_builder_close_container(&builder))
return NULL;
/*
@@ -5712,19 +5659,19 @@
* data object type.
*/
tag = STK_DATA_OBJECT_TYPE_DEVICE_IDENTITIES;
- if (stk_tlv_builder_open_container(&builder, TRUE, tag, FALSE) == FALSE)
+ if (!stk_tlv_builder_open_container(&builder, true, tag, false))
return NULL;
- if (stk_tlv_builder_append_byte(&builder, response->src) == FALSE)
+ if (!stk_tlv_builder_append_byte(&builder, response->src))
return NULL;
- if (stk_tlv_builder_append_byte(&builder, response->dst) == FALSE)
+ if (!stk_tlv_builder_append_byte(&builder, response->dst))
return NULL;
- if (stk_tlv_builder_close_container(&builder) == FALSE)
+ if (!stk_tlv_builder_close_container(&builder))
return NULL;
- if (build_dataobj_result(&builder, &response->result, TRUE) != TRUE)
+ if (!build_dataobj_result(&builder, &response->result, true))
return NULL;
switch (response->type) {
@@ -5826,7 +5773,7 @@
return NULL;
};
- if (ok != TRUE)
+ if (!ok)
return NULL;
if (out_length)
@@ -5836,57 +5783,63 @@
}
/* Described in TS 102.223 Section 8.7 */
-static gboolean build_envelope_dataobj_device_ids(struct stk_tlv_builder *tlv,
- const void *data, gboolean cr)
+static bool build_envelope_dataobj_device_ids(struct stk_tlv_builder *tlv,
+ const void *data, bool cr)
{
const struct stk_envelope *envelope = data;
- unsigned char tag = STK_DATA_OBJECT_TYPE_DEVICE_IDENTITIES;
+ uint8_t tag = STK_DATA_OBJECT_TYPE_DEVICE_IDENTITIES;
- return stk_tlv_builder_open_container(tlv, cr, tag, FALSE) &&
+ return stk_tlv_builder_open_container(tlv, cr, tag, false) &&
stk_tlv_builder_append_byte(tlv, envelope->src) &&
stk_tlv_builder_append_byte(tlv, envelope->dst) &&
stk_tlv_builder_close_container(tlv);
}
-static gboolean build_envelope_call_control(
+static bool build_envelope_call_control(
struct stk_tlv_builder *builder,
const struct stk_envelope *envelope)
{
const struct stk_envelope_call_control *cc = &envelope->call_control;
- gboolean ok = FALSE;
+ bool ok = false;
- if (build_dataobj(builder, build_envelope_dataobj_device_ids,
- DATAOBJ_FLAG_CR, envelope, NULL) != TRUE)
- return FALSE;
+ if (!build_dataobj(builder,
+ build_envelope_dataobj_device_ids,
+ DATAOBJ_FLAG_CR, envelope, NULL))
+ return false;
switch (cc->type) {
case STK_CC_TYPE_CALL_SETUP:
- ok = build_dataobj(builder, build_dataobj_address,
+ ok = build_dataobj(builder,
+ build_dataobj_address,
DATAOBJ_FLAG_CR, &cc->address, NULL);
break;
case STK_CC_TYPE_SUPPLEMENTARY_SERVICE:
- ok = build_dataobj(builder, build_dataobj_ss_string,
+ ok = build_dataobj(builder,
+ build_dataobj_ss_string,
DATAOBJ_FLAG_CR, &cc->ss_string, NULL);
break;
case STK_CC_TYPE_USSD_OP:
- ok = build_dataobj(builder, build_dataobj_ussd_string,
+ ok = build_dataobj(builder,
+ build_dataobj_ussd_string,
DATAOBJ_FLAG_CR, &cc->ussd_string,
NULL);
break;
case STK_CC_TYPE_PDP_CTX_ACTIVATION:
- ok = build_dataobj(builder, build_dataobj_pdp_context_params,
+ ok = build_dataobj(builder,
+ build_dataobj_pdp_context_params,
DATAOBJ_FLAG_CR, &cc->pdp_ctx_params,
NULL);
break;
case STK_CC_TYPE_EPS_PDN_CONNECTION_ACTIVATION:
- ok = build_dataobj(builder, build_dataobj_eps_pdn_conn_params,
+ ok = build_dataobj(builder,
+ build_dataobj_eps_pdn_conn_params,
DATAOBJ_FLAG_CR, &cc->eps_pdn_params,
NULL);
break;
}
- if (ok != TRUE)
- return FALSE;
+ if (!ok)
+ return false;
return build_dataobj(builder,
build_dataobj_ccp, 0, &cc->ccp1,
@@ -5898,20 +5851,20 @@
NULL);
}
-static gboolean build_envelope_event_download(struct stk_tlv_builder *builder,
+static bool build_envelope_event_download(struct stk_tlv_builder *builder,
const struct stk_envelope *envelope)
{
const struct stk_envelope_event_download *evt =
&envelope->event_download;
- if (build_dataobj(builder,
+ if (!build_dataobj(builder,
build_dataobj_event_type, DATAOBJ_FLAG_CR,
&evt->type,
build_envelope_dataobj_device_ids,
DATAOBJ_FLAG_CR,
envelope,
- NULL) == FALSE)
- return FALSE;
+ NULL))
+ return false;
switch (evt->type) {
case STK_EVENT_TYPE_MT_CALL:
@@ -5948,7 +5901,7 @@
NULL);
case STK_EVENT_TYPE_USER_ACTIVITY:
case STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE:
- return TRUE;
+ return true;
case STK_EVENT_TYPE_CARD_READER_STATUS:
return build_dataobj(builder,
build_dataobj_card_reader_status,
@@ -6055,47 +6008,47 @@
&evt->network_rejection.cause,
NULL);
case STK_EVENT_TYPE_HCI_CONNECTIVITY_EVENT:
- return TRUE;
+ return true;
default:
- return FALSE;
+ return false;
}
}
-static gboolean build_envelope_terminal_apps(struct stk_tlv_builder *builder,
+static bool build_envelope_terminal_apps(struct stk_tlv_builder *builder,
const struct stk_envelope *envelope)
{
const struct stk_envelope_terminal_apps *ta = &envelope->terminal_apps;
int i;
- if (build_dataobj(builder,
+ if (!build_dataobj(builder,
build_envelope_dataobj_device_ids,
- DATAOBJ_FLAG_CR, envelope, NULL) == FALSE)
- return FALSE;
+ DATAOBJ_FLAG_CR, envelope, NULL))
+ return false;
for (i = 0; i < ta->count; i++)
- if (build_dataobj(builder,
+ if (!build_dataobj(builder,
build_dataobj_registry_application_data,
- 0, &ta->list[i], NULL) == FALSE)
- return FALSE;
+ 0, &ta->list[i], NULL))
+ return false;
return build_dataobj(builder,
build_dataobj_last_envelope,
0, &ta->last, NULL);
}
-const unsigned char *stk_pdu_from_envelope(const struct stk_envelope *envelope,
+const uint8_t *stk_pdu_from_envelope(const struct stk_envelope *envelope,
unsigned int *out_length)
{
struct ber_tlv_builder btlv;
struct stk_tlv_builder builder;
- gboolean ok = TRUE;
- static unsigned char buffer[512];
- unsigned char *pdu;
+ bool ok = true;
+ static uint8_t buffer[512];
+ uint8_t *pdu;
if (ber_tlv_builder_init(&btlv, buffer, sizeof(buffer)) != TRUE)
return NULL;
- if (stk_tlv_builder_recurse(&builder, &btlv, envelope->type) != TRUE)
+ if (!stk_tlv_builder_recurse(&builder, &btlv, envelope->type))
return NULL;
switch (envelope->type) {
@@ -6209,7 +6162,7 @@
return NULL;
};
- if (ok != TRUE)
+ if (!ok)
return NULL;
ber_tlv_builder_optimize(&btlv, &pdu, out_length);
@@ -6257,41 +6210,41 @@
STK_TEXT_FORMAT_STYLE_STRIKETHROUGH = 0x80,
};
-static void end_format(GString *string, guint16 attr)
+static void end_format(struct l_string *string, uint16_t attr)
{
- guint code = attr & 0xFF;
- guint color = (attr >> 8) & 0xFF;
+ uint8_t code = attr & 0xFF;
+ uint8_t color = (attr >> 8) & 0xFF;
if ((code & ~STK_TEXT_FORMAT_ALIGN_MASK) || color)
- g_string_append(string, "</span>");
+ l_string_append(string, "</span>");
if ((code & STK_TEXT_FORMAT_ALIGN_MASK) != STK_TEXT_FORMAT_NO_ALIGN)
- g_string_append(string, "</div>");
+ l_string_append(string, "</div>");
}
-static void start_format(GString *string, guint16 attr)
+static void start_format(struct l_string *string, uint16_t attr)
{
- guint8 code = attr & 0xFF;
- guint8 color = (attr >> 8) & 0xFF;
- guint8 align = code & STK_TEXT_FORMAT_ALIGN_MASK;
- guint8 font = code & STK_TEXT_FORMAT_FONT_MASK;
- guint8 style = code & STK_TEXT_FORMAT_STYLE_MASK;
+ uint8_t code = attr & 0xFF;
+ uint8_t color = (attr >> 8) & 0xFF;
+ uint8_t align = code & STK_TEXT_FORMAT_ALIGN_MASK;
+ uint8_t font = code & STK_TEXT_FORMAT_FONT_MASK;
+ uint8_t style = code & STK_TEXT_FORMAT_STYLE_MASK;
int fg = color & 0x0f;
int bg = (color >> 4) & 0x0f;
/* align formatting applies to a block of text */
if (align != STK_TEXT_FORMAT_NO_ALIGN)
- g_string_append(string, "<div style=\"");
+ l_string_append(string, "<div style=\"");
switch (align) {
case STK_TEXT_FORMAT_RIGHT_ALIGN:
- g_string_append(string, "text-align: right;\">");
+ l_string_append(string, "text-align: right;\">");
break;
case STK_TEXT_FORMAT_CENTER_ALIGN:
- g_string_append(string, "text-align: center;\">");
+ l_string_append(string, "text-align: center;\">");
break;
case STK_TEXT_FORMAT_LEFT_ALIGN:
- g_string_append(string, "text-align: left;\">");
+ l_string_append(string, "text-align: left;\">");
break;
}
@@ -6299,50 +6252,46 @@
return;
/* font, style, and color are inline */
- g_string_append(string, "<span style=\"");
+ l_string_append(string, "<span style=\"");
switch (font) {
case STK_TEXT_FORMAT_FONT_SIZE_LARGE:
- g_string_append(string, "font-size: big;");
+ l_string_append(string, "font-size: big;");
break;
case STK_TEXT_FORMAT_FONT_SIZE_SMALL:
- g_string_append(string, "font-size: small;");
+ l_string_append(string, "font-size: small;");
break;
}
if (style & STK_TEXT_FORMAT_STYLE_BOLD)
- g_string_append(string, "font-weight: bold;");
+ l_string_append(string, "font-weight: bold;");
if (style & STK_TEXT_FORMAT_STYLE_ITALIC)
- g_string_append(string, "font-style: italic;");
+ l_string_append(string, "font-style: italic;");
if (style & STK_TEXT_FORMAT_STYLE_UNDERLINED)
- g_string_append(string, "text-decoration: underline;");
+ l_string_append(string, "text-decoration: underline;");
if (style & STK_TEXT_FORMAT_STYLE_STRIKETHROUGH)
- g_string_append(string, "text-decoration: line-through;");
+ l_string_append(string, "text-decoration: line-through;");
/* add any color */
- g_string_append_printf(string, "color: %s;", html_colors[fg]);
- g_string_append_printf(string, "background-color: %s;",
+ l_string_append_printf(string, "color: %s;", html_colors[fg]);
+ l_string_append_printf(string, "background-color: %s;",
html_colors[bg]);
- g_string_append(string, "\">");
+ l_string_append(string, "\">");
}
char *stk_text_to_html(const char *utf8,
- const unsigned short *attrs, int num_attrs)
+ const uint16_t *attrs, int num_attrs)
{
- long text_len = g_utf8_strlen(utf8, -1);
- GString *string = g_string_sized_new(strlen(utf8) + 1);
+ long text_len = l_utf8_strlen(utf8);
+ struct l_string *string = l_string_new(strlen(utf8) + 1);
short *formats;
int pos, i, j;
- guint16 start, end, len, attr, prev_attr;
- guint8 code, color, align;
+ uint16_t start, end, len, attr, prev_attr;
+ uint8_t code, color, align;
const char *text = utf8;
int attrs_len = num_attrs * 4;
- formats = g_try_new0(gint16, (text_len + 1));
- if (formats == NULL) {
- g_string_free(string, TRUE);
- return NULL;
- }
+ formats = l_new(int16_t, text_len + 1);
/* we will need formatting at the position beyond the last char */
for (i = 0; i <= text_len; i++)
@@ -6387,6 +6336,9 @@
prev_attr = STK_TEXT_FORMAT_INIT;
for (pos = 0; pos <= text_len; pos++) {
+ wchar_t c;
+ int len;
+
attr = formats[pos];
if (attr != prev_attr) {
if (prev_attr != STK_TEXT_FORMAT_INIT)
@@ -6401,43 +6353,40 @@
if (pos == text_len)
break;
- switch (g_utf8_get_char(text)) {
+ len = l_utf8_get_codepoint(text, 4, &c);
+ switch (c) {
case '\n':
- g_string_append(string, "<br/>");
+ l_string_append(string, "<br/>");
break;
case '\r':
- {
- char *next = g_utf8_next_char(text);
- gunichar c = g_utf8_get_char(next);
-
- g_string_append(string, "<br/>");
-
- if ((pos + 1 < text_len) && (c == '\n')) {
- text = g_utf8_next_char(text);
- pos++;
+ /* If the next character is a newline, consume it */
+ if ((pos + 1 < text_len) && (text[len] == '\n')) {
+ pos += 1;
+ len += 1;
}
+
+ l_string_append(string, "<br/>");
break;
- }
case '<':
- g_string_append(string, "<");
+ l_string_append(string, "<");
break;
case '>':
- g_string_append(string, ">");
+ l_string_append(string, ">");
break;
case '&':
- g_string_append(string, "&");
+ l_string_append(string, "&");
break;
default:
- g_string_append_unichar(string, g_utf8_get_char(text));
+ l_string_append_fixed(string, text, len);
}
- text = g_utf8_next_char(text);
+ text += len;
}
- g_free(formats);
+ l_free(formats);
/* return characters from string. Caller must free char data */
- return g_string_free(string, FALSE);
+ return l_string_unwrap(string);
}
static const char chars_table[] = {
@@ -6447,15 +6396,15 @@
'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '+', '.' };
-char *stk_image_to_xpm(const unsigned char *img, unsigned int len,
- enum stk_img_scheme scheme, const unsigned char *clut,
- unsigned short clut_len)
+char *stk_image_to_xpm(const uint8_t *img, unsigned int len,
+ enum stk_img_scheme scheme, const uint8_t *clut,
+ uint16_t clut_len)
{
- guint8 width, height;
+ uint8_t width, height;
unsigned int ncolors, nbits, entry, cpp;
unsigned int i, j;
int bit, k;
- GString *xpm;
+ struct l_string *xpm;
unsigned int pos = 0;
const char xpm_header[] = "/* XPM */\n";
const char declaration[] = "static char *xpm[] = {\n";
@@ -6508,22 +6457,20 @@
* pixels - width * height * cpp + height deliminators "",\n
* end of assignment - 2 chars "};"
*/
- xpm = g_string_sized_new(strlen(xpm_header) + strlen(declaration) +
+ xpm = l_string_new(strlen(xpm_header) + strlen(declaration) +
19 + ((cpp + 14) * ncolors) +
(width * height * cpp) + (4 * height) + 2);
- if (xpm == NULL)
- return NULL;
/* add header, declaration, values */
- g_string_append(xpm, xpm_header);
- g_string_append(xpm, declaration);
- g_string_append_printf(xpm, "\"%d %d %d %d\",\n", width, height,
+ l_string_append(xpm, xpm_header);
+ l_string_append(xpm, declaration);
+ l_string_append_printf(xpm, "\"%d %d %d %d\",\n", width, height,
ncolors, cpp);
/* create colors */
if (scheme == STK_IMG_SCHEME_BASIC) {
- g_string_append(xpm, "\"0\tc #000000\",\n");
- g_string_append(xpm, "\"1\tc #FFFFFF\",\n");
+ l_string_append(xpm, "\"0\tc #000000\",\n");
+ l_string_append(xpm, "\"1\tc #FFFFFF\",\n");
} else {
for (i = 0; i < ncolors; i++) {
/* lookup char representation of this number */
@@ -6538,10 +6485,10 @@
if ((i == (ncolors - 1)) &&
scheme == STK_IMG_SCHEME_TRANSPARENCY)
- g_string_append_printf(xpm,
+ l_string_append_printf(xpm,
"\"%s\tc None\",\n", c);
else
- g_string_append_printf(xpm,
+ l_string_append_printf(xpm,
"\"%s\tc #%02hhX%02hhX%02hhX\",\n",
c, clut[0], clut[1], clut[2]);
clut += 3;
@@ -6551,7 +6498,7 @@
/* height rows of width pixels */
k = 7;
for (i = 0; i < height; i++) {
- g_string_append(xpm, "\"");
+ l_string_append(xpm, "\"");
for (j = 0; j < width; j++) {
entry = 0;
for (bit = nbits - 1; bit >= 0; bit--) {
@@ -6575,14 +6522,14 @@
c[1] = '\0';
}
- g_string_append_printf(xpm, "%s", c);
+ l_string_append_printf(xpm, "%s", c);
}
- g_string_append(xpm, "\",\n");
+ l_string_append(xpm, "\",\n");
}
- g_string_append(xpm, "};");
+ l_string_append(xpm, "};");
/* Caller must free char data */
- return g_string_free(xpm, FALSE);
+ return l_string_unwrap(xpm);
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/stkutil.h
^
|
@@ -19,6 +19,8 @@
*
*/
+struct l_queue;
+
/*
* TS 101.220, Section 7.2, Card Application Toolkit assigned templates,
* These are the same as 3GPP 11.14 Sections 13.1 and 13.2
@@ -644,13 +646,13 @@
/* For data object that only has a byte array with undetermined length */
struct stk_common_byte_array {
- unsigned char *array;
+ uint8_t *array;
unsigned int len;
};
/* Defined in TS 102.223 Section 8.1 */
struct stk_address {
- unsigned char ton_npi;
+ uint8_t ton_npi;
char *number;
};
@@ -669,9 +671,9 @@
* bytes."
*/
struct stk_subaddress {
- ofono_bool_t has_subaddr;
- unsigned char len;
- unsigned char subaddr[23];
+ bool has_subaddr;
+ uint8_t len;
+ uint8_t subaddr[23];
};
/*
@@ -686,14 +688,14 @@
* The CCP structure is not decoded, but stored as is from the CTLV
*/
struct stk_ccp {
- unsigned char len;
- unsigned char ccp[16];
+ uint8_t len;
+ uint8_t ccp[16];
};
/* Defined in TS 31.111 Section 8.5 */
struct stk_cbs_page {
- unsigned char len;
- unsigned char page[88];
+ uint8_t len;
+ uint8_t page[88];
};
/*
@@ -702,12 +704,12 @@
*/
struct stk_duration {
enum stk_duration_type unit;
- unsigned char interval;
+ uint8_t interval;
};
/* Defined in TS 102.223 Section 8.9 */
struct stk_item {
- unsigned char id;
+ uint8_t id;
char *text;
};
@@ -716,27 +718,27 @@
* to 0.
*/
struct stk_response_length {
- unsigned char min;
- unsigned char max;
+ uint8_t min;
+ uint8_t max;
};
/* Defined in TS 102.223 Section 8.12 */
struct stk_result {
enum stk_result_type type;
unsigned int additional_len;
- unsigned char *additional;
+ uint8_t *additional;
};
/* Defined in TS 102.223 Section 8.14 */
struct stk_ss {
- unsigned char ton_npi;
+ uint8_t ton_npi;
char *ss;
};
/* Defined in TS 131.111 Section 8.17. Length limit of 160 chars in 23.028 */
struct stk_ussd_string {
- unsigned char dcs;
- unsigned char string[160];
+ uint8_t dcs;
+ uint8_t string[160];
int len;
};
@@ -748,7 +750,7 @@
* 2 bytes of 2nd level Dedicated File and 2 bytes of Elementary File.
*/
struct stk_file {
- unsigned char file[8];
+ uint8_t file[8];
unsigned int len;
};
@@ -756,13 +758,13 @@
struct stk_location_info {
char mnc[OFONO_MAX_MNC_LENGTH + 1];
char mcc[OFONO_MAX_MCC_LENGTH + 1];
- unsigned short lac_tac;
- ofono_bool_t has_ci;
- unsigned short ci;
- ofono_bool_t has_ext_ci;
- unsigned short ext_ci;
- ofono_bool_t has_eutran_ci;
- guint32 eutran_ci;
+ uint16_t lac_tac;
+ bool has_ci;
+ uint16_t ci;
+ bool has_ext_ci;
+ uint16_t ext_ci;
+ bool has_eutran_ci;
+ uint32_t eutran_ci;
};
/*
@@ -770,7 +772,7 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_items_next_action_indicator {
- unsigned char list[127];
+ uint8_t list[127];
unsigned int len;
};
@@ -779,7 +781,7 @@
* one should appear more than once.
*/
struct stk_event_list {
- unsigned char list[21];
+ uint8_t list[21];
unsigned int len;
};
@@ -787,9 +789,9 @@
* According to 102.223 Section 8.26, the maximum length of cause is 30.
*/
struct stk_cause {
- unsigned char cause[30];
+ uint8_t cause[30];
unsigned int len;
- ofono_bool_t has_cause;
+ bool has_cause;
};
/*
@@ -797,7 +799,7 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_transaction_id {
- unsigned char list[127];
+ uint8_t list[127];
unsigned int len;
};
@@ -807,9 +809,9 @@
* is represented as 10 bits, so the maximum number of channel is 127*8/10=101.
*/
struct stk_bcch_channel_list {
- unsigned short channels[101];
+ uint16_t channels[101];
unsigned int num;
- ofono_bool_t has_list;
+ bool has_list;
};
/*
@@ -818,8 +820,8 @@
* ids of 0, we use icon_id with 0 to denote empty icon_identifier objects
*/
struct stk_icon_id {
- unsigned char qualifier;
- unsigned char id;
+ uint8_t qualifier;
+ uint8_t id;
};
/*
@@ -829,19 +831,19 @@
* identifier list is 126.
*/
struct stk_item_icon_id_list {
- unsigned char qualifier;
- unsigned char list[126];
+ uint8_t qualifier;
+ uint8_t list[126];
unsigned int len;
};
/* Defined in TS 102.223 Section 8.33 */
struct stk_reader_status {
int id;
- ofono_bool_t removable;
- ofono_bool_t present;
- ofono_bool_t id1_size;
- ofono_bool_t card_present;
- ofono_bool_t card_powered;
+ bool removable;
+ bool present;
+ bool id1_size;
+ bool card_present;
+ bool card_powered;
};
/*
@@ -849,7 +851,7 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_card_atr {
- unsigned char atr[127];
+ uint8_t atr[127];
unsigned int len;
};
@@ -858,60 +860,60 @@
* of data is 236.
*/
struct stk_c_apdu {
- unsigned char cla;
- unsigned char ins;
- unsigned char p1;
- unsigned char p2;
- unsigned char lc;
- unsigned char data[236];
- ofono_bool_t has_le;
- unsigned char le;
+ uint8_t cla;
+ uint8_t ins;
+ uint8_t p1;
+ uint8_t p2;
+ uint8_t lc;
+ uint8_t data[236];
+ bool has_le;
+ uint8_t le;
};
/* Defined in TS 102.223 Section 8.36. According to it, the maximum size
* of data is 237.
*/
struct stk_r_apdu {
- unsigned char sw1;
- unsigned char sw2;
- unsigned char data[237];
+ uint8_t sw1;
+ uint8_t sw2;
+ uint8_t data[237];
unsigned int len;
};
/* Defined in TS 102.223 Section 8.38 */
struct stk_timer_value {
- ofono_bool_t has_value;
- unsigned char hour;
- unsigned char minute;
- unsigned char second;
+ bool has_value;
+ uint8_t hour;
+ uint8_t minute;
+ uint8_t second;
};
/* Defined in TS 102.223 Section 8.42 */
struct stk_bc_repeat {
- ofono_bool_t has_bc_repeat;
- unsigned char value;
+ bool has_bc_repeat;
+ uint8_t value;
};
/* Defined in TS 31.111 Section 8.46 */
struct stk_timing_advance {
- ofono_bool_t has_value;
+ bool has_value;
enum stk_me_status status;
/*
* Contains bit periods number according to 3GPP TS
* 44.118 Section 9.3.106 / 3GPP TS 44.018 Section
* 10.5.2.40.1, not microseconds
*/
- unsigned char advance;
+ uint8_t advance;
};
/* Bearer parameters for GPRS/UTRAN Packet Service/E-UTRAN */
struct stk_gprs_bearer_parameters {
- unsigned char precedence;
- unsigned char delay;
- unsigned char reliability;
- unsigned char peak;
- unsigned char mean;
- unsigned char pdp_type;
+ uint8_t precedence;
+ uint8_t delay;
+ uint8_t reliability;
+ uint8_t peak;
+ uint8_t mean;
+ uint8_t pdp_type;
};
/* Defined in TS 31.111 Section 8.52 */
@@ -925,8 +927,8 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_card_reader_id {
- unsigned char id[127];
- unsigned char len;
+ uint8_t id[127];
+ uint8_t len;
};
/*
@@ -937,7 +939,7 @@
union {
/* Network Byte Order */
guint32 ipv4;
- unsigned char ipv6[16];
+ uint8_t ipv6[16];
} addr;
enum stk_address_type type;
};
@@ -945,7 +947,7 @@
/* Defined in TS 102.223 Section 8.59 */
struct stk_uicc_te_interface {
enum stk_transport_protocol_type protocol;
- unsigned short port;
+ uint16_t port;
};
/*
@@ -955,43 +957,43 @@
* So the maximum size of aid is 16 bytes.
*/
struct stk_aid {
- unsigned char aid[16];
+ uint8_t aid[16];
unsigned int len;
};
/* Defined in TS 102.223 Section 8.62 */
struct stk_display_parameters {
- unsigned char height;
- unsigned char width;
- unsigned char effects;
+ uint8_t height;
+ uint8_t width;
+ uint8_t effects;
};
/* Defined in TS 102.223 Section 8.63 */
struct stk_service_record {
- unsigned char tech_id;
- unsigned char serv_id;
- unsigned char *serv_rec;
+ uint8_t tech_id;
+ uint8_t serv_id;
+ uint8_t *serv_rec;
unsigned int len;
};
/* Defined in TS 102.223 Section 8.64 */
struct stk_device_filter {
- unsigned char tech_id;
- unsigned char *dev_filter;
+ uint8_t tech_id;
+ uint8_t *dev_filter;
unsigned int len;
};
/* Defined in TS 102.223 Section 8.65 */
struct stk_service_search {
- unsigned char tech_id;
- unsigned char *ser_search;
+ uint8_t tech_id;
+ uint8_t *ser_search;
unsigned int len;
};
/* Defined in TS 102.223 Section 8.66 */
struct stk_attribute_info {
- unsigned char tech_id;
- unsigned char *attr_info;
+ uint8_t tech_id;
+ uint8_t *attr_info;
unsigned int len;
};
@@ -1000,11 +1002,11 @@
* 6-bytes IEEE-802 address, or 4-bytes IrDA device address.
*/
struct stk_remote_entity_address {
- unsigned char coding_type;
- ofono_bool_t has_address;
+ uint8_t coding_type;
+ bool has_address;
union {
- unsigned char ieee802[6];
- unsigned char irda[4];
+ uint8_t ieee802[6];
+ uint8_t irda[4];
} addr;
};
@@ -1014,14 +1016,14 @@
* of CTLVs. Empty attribute options will have len of 0.
*/
struct stk_text_attribute {
- unsigned char attributes[127];
- unsigned char len;
+ uint8_t attributes[127];
+ uint8_t len;
};
/* Defined in TS 31.111 Section 8.72 */
struct stk_pdp_act_par {
- unsigned char par[127];
- unsigned char len;
+ uint8_t par[127];
+ uint8_t len;
};
/*
@@ -1031,8 +1033,8 @@
* is 124.
*/
struct stk_item_text_attribute_list {
- unsigned char list[124];
- unsigned char len;
+ uint8_t list[124];
+ uint8_t len;
};
/*
@@ -1041,8 +1043,8 @@
* relative-sized frame. Thus the maximum length of relative size is 126 bytes.
*/
struct stk_frame_layout {
- unsigned char layout;
- unsigned char size[126];
+ uint8_t layout;
+ uint8_t size[126];
unsigned int len;
};
@@ -1053,17 +1055,17 @@
* list is 126 bytes.
*/
struct stk_frames_info {
- unsigned char id;
+ uint8_t id;
struct {
- unsigned char width, height;
+ uint8_t width, height;
} list[63];
unsigned int len;
};
/* Defined in TS 102.223 Section 8.80 */
struct stk_frame_id {
- ofono_bool_t has_id;
- unsigned char id;
+ bool has_id;
+ uint8_t id;
};
/*
@@ -1071,8 +1073,8 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_mms_reference {
- unsigned char ref[127];
- unsigned char len;
+ uint8_t ref[127];
+ uint8_t len;
};
/*
@@ -1080,8 +1082,8 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_mms_id {
- unsigned char id[127];
- unsigned char len;
+ uint8_t id[127];
+ uint8_t len;
};
/*
@@ -1089,8 +1091,8 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_mms_transfer_status {
- unsigned char status[127];
- unsigned char len;
+ uint8_t status[127];
+ uint8_t len;
};
/*
@@ -1098,14 +1100,14 @@
* that the maximum size is 127 according to the rules of CTLVs.
*/
struct stk_mms_content_id {
- unsigned char id[127];
- unsigned char len;
+ uint8_t id[127];
+ uint8_t len;
};
/* Defined in TS 102.223 Section 8.88 */
struct stk_registry_application_data {
- unsigned short port;
- unsigned char type;
+ uint16_t port;
+ uint8_t type;
char *name;
};
@@ -1116,8 +1118,8 @@
* location information is 126 bytes.
*/
struct stk_broadcast_network_information {
- unsigned char tech;
- unsigned char loc_info[126];
+ uint8_t tech;
+ uint8_t loc_info[126];
unsigned int len;
};
@@ -1125,21 +1127,21 @@
struct stk_routing_area_info {
char mnc[OFONO_MAX_MNC_LENGTH + 1];
char mcc[OFONO_MAX_MCC_LENGTH + 1];
- unsigned short lac;
- unsigned char rac;
+ uint16_t lac;
+ uint8_t rac;
};
/* Defined in TS 131.111 Section 8.99 */
struct stk_tracking_area_id {
char mnc[OFONO_MAX_MNC_LENGTH + 1];
char mcc[OFONO_MAX_MCC_LENGTH + 1];
- unsigned short tac;
+ uint16_t tac;
};
struct stk_command_display_text {
char *text;
struct stk_icon_id icon_id;
- ofono_bool_t immediate_response;
+ bool immediate_response;
struct stk_duration duration;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
@@ -1164,7 +1166,7 @@
struct stk_command_play_tone {
char *alpha_id;
- unsigned char tone;
+ uint8_t tone;
struct stk_duration duration;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
@@ -1177,7 +1179,7 @@
struct stk_command_setup_menu {
char *alpha_id;
- GSList *items;
+ struct l_queue *items;
struct stk_items_next_action_indicator next_act;
struct stk_icon_id icon_id;
struct stk_item_icon_id_list item_icon_id_list;
@@ -1187,9 +1189,9 @@
struct stk_command_select_item {
char *alpha_id;
- GSList *items;
+ struct l_queue *items;
struct stk_items_next_action_indicator next_act;
- unsigned char item_id;
+ uint8_t item_id;
struct stk_icon_id icon_id;
struct stk_item_icon_id_list item_icon_id_list;
struct stk_text_attribute text_attr;
@@ -1237,7 +1239,7 @@
};
struct stk_command_refresh {
- GSList *file_list;
+ struct l_queue *file_list;
struct stk_aid aid;
char *alpha_id;
struct stk_icon_id icon_id;
@@ -1254,7 +1256,7 @@
};
struct stk_command_timer_mgmt {
- unsigned char timer_id;
+ uint8_t timer_id;
struct stk_timer_value timer_value;
};
@@ -1286,10 +1288,10 @@
};
struct stk_command_launch_browser {
- unsigned char browser_id;
+ uint8_t browser_id;
char *url;
struct stk_common_byte_array bearer;
- GSList *prov_file_refs;
+ struct l_queue *prov_file_refs;
char *text_gateway_proxy_id;
char *alpha_id;
struct stk_icon_id icon_id;
@@ -1304,7 +1306,7 @@
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_bearer_description bearer_desc;
- unsigned short buf_size;
+ uint16_t buf_size;
char *apn;
struct stk_other_address local_addr;
char *text_usr;
@@ -1325,7 +1327,7 @@
struct stk_command_receive_data {
char *alpha_id;
struct stk_icon_id icon_id;
- unsigned char data_len;
+ uint8_t data_len;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
@@ -1370,7 +1372,7 @@
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_mms_reference mms_ref;
- GSList *mms_rec_files;
+ struct l_queue *mms_rec_files;
struct stk_mms_content_id mms_content_id;
struct stk_mms_id mms_id;
struct stk_text_attribute text_attr;
@@ -1380,21 +1382,21 @@
struct stk_command_submit_mms {
char *alpha_id;
struct stk_icon_id icon_id;
- GSList *mms_subm_files;
+ struct l_queue *mms_subm_files;
struct stk_mms_id mms_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
struct stk_command_display_mms {
- GSList *mms_subm_files;
+ struct l_queue *mms_subm_files;
struct stk_mms_id mms_id;
- ofono_bool_t imd_resp;
+ bool imd_resp;
struct stk_frame_id frame_id;
};
struct stk_command_activate {
- unsigned char actv_desc;
+ uint8_t actv_desc;
};
enum stk_command_parse_result {
@@ -1405,9 +1407,9 @@
};
struct stk_command {
- unsigned char number;
- unsigned char type;
- unsigned char qualifier;
+ uint8_t number;
+ uint8_t type;
+ uint8_t qualifier;
enum stk_device_identity_type src;
enum stk_device_identity_type dst;
enum stk_command_parse_result status;
@@ -1456,8 +1458,8 @@
struct stk_answer_text {
char *text;
- ofono_bool_t packed;
- ofono_bool_t yesno;
+ bool packed;
+ bool yesno;
/*
* If a "Yes/No" answer was requested in a GET INKEY command,
* .yesno must be TRUE and text should be non-NULL to indicate
@@ -1466,14 +1468,14 @@
};
struct stk_ussd_text {
- ofono_bool_t has_text;
- const unsigned char *text;
+ bool has_text;
+ const uint8_t *text;
int dcs;
int len;
};
struct stk_channel {
- unsigned char id;
+ uint8_t id;
enum stk_channel_status status;
};
@@ -1491,13 +1493,13 @@
};
struct stk_response_select_item {
- unsigned char item_id;
+ uint8_t item_id;
};
struct stk_response_set_up_call {
struct stk_common_byte_array cc_requested_action;
struct {
- ofono_bool_t cc_modified;
+ bool cc_modified;
struct stk_result result;
} modified_result;
};
@@ -1540,7 +1542,7 @@
};
struct stk_response_timer_mgmt {
- unsigned char id;
+ uint8_t id;
struct stk_timer_value value;
};
@@ -1555,16 +1557,16 @@
struct stk_response_open_channel {
struct stk_channel channel;
struct stk_bearer_description bearer_desc;
- unsigned short buf_size;
+ uint16_t buf_size;
};
struct stk_response_receive_data {
struct stk_common_byte_array rx_data;
- unsigned short rx_remaining;
+ uint16_t rx_remaining;
};
struct stk_response_send_data {
- unsigned short tx_avail;
+ uint16_t tx_avail;
};
struct stk_response_channel_status {
@@ -1572,9 +1574,9 @@
};
struct stk_response {
- unsigned char number;
- unsigned char type;
- unsigned char qualifier;
+ uint8_t number;
+ uint8_t type;
+ uint8_t qualifier;
enum stk_device_identity_type src;
enum stk_device_identity_type dst;
struct stk_result result;
@@ -1621,8 +1623,8 @@
};
struct stk_envelope_menu_selection {
- unsigned char item_id;
- ofono_bool_t help_request;
+ uint8_t item_id;
+ bool help_request;
};
struct stk_envelope_sms_mo_control {
@@ -1668,12 +1670,12 @@
enum stk_event_type type;
union {
struct {
- unsigned char transaction_id;
+ uint8_t transaction_id;
struct stk_address caller_address;
struct stk_subaddress caller_subaddress;
} mt_call;
struct {
- unsigned char transaction_id;
+ uint8_t transaction_id;
} call_connected;
struct {
struct stk_transaction_id transaction_ids;
@@ -1691,7 +1693,7 @@
} browser_termination;
struct {
struct stk_channel channel;
- unsigned short channel_data_len;
+ uint16_t channel_data_len;
} data_available;
struct {
struct stk_channel channel;
@@ -1727,7 +1729,7 @@
};
struct stk_envelope_timer_expiration {
- unsigned char id;
+ uint8_t id;
struct stk_timer_value value;
};
@@ -1743,13 +1745,13 @@
struct stk_envelope_mms_notification_download {
struct stk_common_byte_array msg;
- ofono_bool_t last;
+ bool last;
};
struct stk_envelope_terminal_apps {
struct stk_registry_application_data *list;
int count;
- ofono_bool_t last;
+ bool last;
};
struct stk_envelope {
@@ -1771,16 +1773,15 @@
};
};
-struct stk_command *stk_command_new_from_pdu(const unsigned char *pdu,
- unsigned int len);
+struct stk_command *stk_command_new_from_pdu(const uint8_t *pdu,
+ unsigned int len);
void stk_command_free(struct stk_command *command);
-const unsigned char *stk_pdu_from_response(const struct stk_response *response,
+const uint8_t *stk_pdu_from_response(const struct stk_response *response,
unsigned int *out_length);
-const unsigned char *stk_pdu_from_envelope(const struct stk_envelope *envelope,
+const uint8_t *stk_pdu_from_envelope(const struct stk_envelope *envelope,
unsigned int *out_length);
-char *stk_text_to_html(const char *text,
- const unsigned short *attrs, int num_attrs);
-char *stk_image_to_xpm(const unsigned char *img, unsigned int len,
- enum stk_img_scheme scheme, const unsigned char *clut,
- unsigned short clut_len);
+char *stk_text_to_html(const char *text, const uint16_t *attrs, int num_attrs);
+char *stk_image_to_xpm(const uint8_t *img, unsigned int len,
+ enum stk_img_scheme scheme, const uint8_t *clut,
+ uint16_t clut_len);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/ussd.c
^
|
@@ -34,7 +34,6 @@
#include "common.h"
#include "smsutil.h"
-#include "util.h"
#define MAX_USSD_LENGTH 160
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/util.c
^
|
@@ -29,7 +29,7 @@
#include <ctype.h>
#include <stdlib.h>
-#include <glib.h>
+#include <ell/ell.h>
#include "util.h"
@@ -65,9 +65,6 @@
#define UTF8_LENGTH(c) \
((c) < 0x80 ? 1 : ((c) < 0x800 ? 2 : 3))
-#define TABLE_SIZE(t) \
- (sizeof((t)) / sizeof(struct codepoint))
-
struct codepoint {
unsigned short from;
unsigned short to;
@@ -2690,7 +2687,7 @@
return codepoint_lookup(&key, t->single_u, t->single_len_u);
}
-static gboolean populate_locking_shift(struct conversion_table *t,
+static bool populate_locking_shift(struct conversion_table *t,
enum gsm_dialect lang)
{
switch (lang) {
@@ -2698,192 +2695,192 @@
case GSM_DIALECT_SPANISH:
t->locking_g = def_gsm;
t->locking_u = def_unicode;
- t->locking_len_u = TABLE_SIZE(def_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(def_unicode);
+ return true;
case GSM_DIALECT_TURKISH:
t->locking_g = tur_gsm;
t->locking_u = tur_unicode;
- t->locking_len_u = TABLE_SIZE(tur_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(tur_unicode);
+ return true;
case GSM_DIALECT_PORTUGUESE:
t->locking_g = por_gsm;
t->locking_u = por_unicode;
- t->locking_len_u = TABLE_SIZE(por_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(por_unicode);
+ return true;
case GSM_DIALECT_BENGALI:
t->locking_g = ben_gsm;
t->locking_u = ben_unicode;
- t->locking_len_u = TABLE_SIZE(ben_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(ben_unicode);
+ return true;
case GSM_DIALECT_GUJARATI:
t->locking_g = guj_gsm;
t->locking_u = guj_unicode;
- t->locking_len_u = TABLE_SIZE(guj_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(guj_unicode);
+ return true;
case GSM_DIALECT_HINDI:
t->locking_g = hin_gsm;
t->locking_u = hin_unicode;
- t->locking_len_u = TABLE_SIZE(hin_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(hin_unicode);
+ return true;
case GSM_DIALECT_KANNADA:
t->locking_g = kan_gsm;
t->locking_u = kan_unicode;
- t->locking_len_u = TABLE_SIZE(kan_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(kan_unicode);
+ return true;
case GSM_DIALECT_MALAYALAM:
t->locking_g = mal_gsm;
t->locking_u = mal_unicode;
- t->locking_len_u = TABLE_SIZE(mal_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(mal_unicode);
+ return true;
case GSM_DIALECT_ORIYA:
t->locking_g = ori_gsm;
t->locking_u = ori_unicode;
- t->locking_len_u = TABLE_SIZE(ori_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(ori_unicode);
+ return true;
case GSM_DIALECT_PUNJABI:
t->locking_g = pun_gsm;
t->locking_u = pun_unicode;
- t->locking_len_u = TABLE_SIZE(pun_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(pun_unicode);
+ return true;
case GSM_DIALECT_TAMIL:
t->locking_g = tam_gsm;
t->locking_u = tam_unicode;
- t->locking_len_u = TABLE_SIZE(tam_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(tam_unicode);
+ return true;
case GSM_DIALECT_TELUGU:
t->locking_g = tel_gsm;
t->locking_u = tel_unicode;
- t->locking_len_u = TABLE_SIZE(tel_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(tel_unicode);
+ return true;
case GSM_DIALECT_URDU:
t->locking_g = urd_gsm;
t->locking_u = urd_unicode;
- t->locking_len_u = TABLE_SIZE(urd_unicode);
- return TRUE;
+ t->locking_len_u = L_ARRAY_SIZE(urd_unicode);
+ return true;
}
- return FALSE;
+ return false;
}
-static gboolean populate_single_shift(struct conversion_table *t,
+static bool populate_single_shift(struct conversion_table *t,
enum gsm_dialect lang)
{
switch (lang) {
case GSM_DIALECT_DEFAULT:
t->single_g = def_ext_gsm;
- t->single_len_g = TABLE_SIZE(def_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(def_ext_gsm);
t->single_u = def_ext_unicode;
- t->single_len_u = TABLE_SIZE(def_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(def_ext_unicode);
+ return true;
case GSM_DIALECT_TURKISH:
t->single_g = tur_ext_gsm;
- t->single_len_g = TABLE_SIZE(tur_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(tur_ext_gsm);
t->single_u = tur_ext_unicode;
- t->single_len_u = TABLE_SIZE(tur_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(tur_ext_unicode);
+ return true;
case GSM_DIALECT_SPANISH:
t->single_g = spa_ext_gsm;
- t->single_len_g = TABLE_SIZE(spa_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(spa_ext_gsm);
t->single_u = spa_ext_unicode;
- t->single_len_u = TABLE_SIZE(spa_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(spa_ext_unicode);
+ return true;
case GSM_DIALECT_PORTUGUESE:
t->single_g = por_ext_gsm;
- t->single_len_g = TABLE_SIZE(por_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(por_ext_gsm);
t->single_u = por_ext_unicode;
- t->single_len_u = TABLE_SIZE(por_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(por_ext_unicode);
+ return true;
case GSM_DIALECT_BENGALI:
t->single_g = ben_ext_gsm;
- t->single_len_g = TABLE_SIZE(ben_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(ben_ext_gsm);
t->single_u = ben_ext_unicode;
- t->single_len_u = TABLE_SIZE(ben_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(ben_ext_unicode);
+ return true;
case GSM_DIALECT_GUJARATI:
t->single_g = guj_ext_gsm;
- t->single_len_g = TABLE_SIZE(guj_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(guj_ext_gsm);
t->single_u = guj_ext_unicode;
- t->single_len_u = TABLE_SIZE(guj_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(guj_ext_unicode);
+ return true;
case GSM_DIALECT_HINDI:
t->single_g = hin_ext_gsm;
- t->single_len_g = TABLE_SIZE(hin_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(hin_ext_gsm);
t->single_u = hin_ext_unicode;
- t->single_len_u = TABLE_SIZE(hin_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(hin_ext_unicode);
+ return true;
case GSM_DIALECT_KANNADA:
t->single_g = kan_ext_gsm;
- t->single_len_g = TABLE_SIZE(kan_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(kan_ext_gsm);
t->single_u = kan_ext_unicode;
- t->single_len_u = TABLE_SIZE(kan_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(kan_ext_unicode);
+ return true;
case GSM_DIALECT_MALAYALAM:
t->single_g = mal_ext_gsm;
- t->single_len_g = TABLE_SIZE(mal_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(mal_ext_gsm);
t->single_u = mal_ext_unicode;
- t->single_len_u = TABLE_SIZE(mal_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(mal_ext_unicode);
+ return true;
case GSM_DIALECT_ORIYA:
t->single_g = ori_ext_gsm;
- t->single_len_g = TABLE_SIZE(ori_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(ori_ext_gsm);
t->single_u = ori_ext_unicode;
- t->single_len_u = TABLE_SIZE(ori_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(ori_ext_unicode);
+ return true;
case GSM_DIALECT_PUNJABI:
t->single_g = pun_ext_gsm;
- t->single_len_g = TABLE_SIZE(pun_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(pun_ext_gsm);
t->single_u = pun_ext_unicode;
- t->single_len_u = TABLE_SIZE(pun_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(pun_ext_unicode);
+ return true;
case GSM_DIALECT_TAMIL:
t->single_g = tam_ext_gsm;
- t->single_len_g = TABLE_SIZE(tam_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(tam_ext_gsm);
t->single_u = tam_ext_unicode;
- t->single_len_u = TABLE_SIZE(tam_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(tam_ext_unicode);
+ return true;
case GSM_DIALECT_TELUGU:
t->single_g = tel_ext_gsm;
- t->single_len_g = TABLE_SIZE(tel_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(tel_ext_gsm);
t->single_u = tel_ext_unicode;
- t->single_len_u = TABLE_SIZE(tel_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(tel_ext_unicode);
+ return true;
case GSM_DIALECT_URDU:
t->single_g = urd_ext_gsm;
- t->single_len_g = TABLE_SIZE(urd_ext_gsm);
+ t->single_len_g = L_ARRAY_SIZE(urd_ext_gsm);
t->single_u = urd_ext_unicode;
- t->single_len_u = TABLE_SIZE(urd_ext_unicode);
- return TRUE;
+ t->single_len_u = L_ARRAY_SIZE(urd_ext_unicode);
+ return true;
}
- return FALSE;
+ return false;
}
-static gboolean conversion_table_init(struct conversion_table *t,
+static bool conversion_table_init(struct conversion_table *t,
enum gsm_dialect locking,
enum gsm_dialect single)
{
@@ -2919,7 +2916,7 @@
struct conversion_table t;
- if (conversion_table_init(&t, locking_lang, single_lang) == FALSE)
+ if (!conversion_table_init(&t, locking_lang, single_lang))
return NULL;
if (len < 0 && !terminator)
@@ -2967,10 +2964,7 @@
res_length += UTF8_LENGTH(c);
}
- res = g_try_malloc(res_length + 1);
- if (res == NULL)
- goto error;
-
+ res = l_malloc(res_length + 1);
out = res;
i = 0;
@@ -2985,7 +2979,7 @@
} else
c = gsm_locking_shift_lookup(&t, text[i]);
- out += g_unichar_to_utf8(c, out);
+ out += l_utf8_from_wchar(c, out);
++i;
}
@@ -3037,25 +3031,25 @@
long res_len;
long i;
- if (conversion_table_init(&t, locking_lang, single_lang) == FALSE)
+ if (!conversion_table_init(&t, locking_lang, single_lang))
return NULL;
in = text;
res_len = 0;
while ((len < 0 || text + len - in > 0) && *in) {
- long max = len < 0 ? 6 : text + len - in;
- gunichar c = g_utf8_get_char_validated(in, max);
- unsigned short converted = GUND;
+ long max = len < 0 ? 4 : text + len - in;
+ wchar_t c;
+ unsigned short converted;
+ int nread = l_utf8_get_codepoint(in, max, &c);
- if (c & 0x80000000)
+ if (nread < 0)
goto err_out;
if (c > 0xffff)
goto err_out;
converted = unicode_locking_shift_lookup(&t, c);
-
if (converted == GUND)
converted = unicode_single_shift_lookup(&t, c);
@@ -3067,23 +3061,20 @@
else
res_len += 1;
- in = g_utf8_next_char(in);
+ in += nread;
nchars += 1;
}
- res = g_try_malloc(res_len + (terminator ? 1 : 0));
- if (res == NULL)
- goto err_out;
-
+ res = l_malloc(res_len + (terminator ? 1 : 0));
in = text;
out = res;
+
for (i = 0; i < nchars; i++) {
+ wchar_t c;
unsigned short converted;
-
- gunichar c = g_utf8_get_char(in);
+ int nread = l_utf8_get_codepoint(in, 4, &c);
converted = unicode_locking_shift_lookup(&t, c);
-
if (converted == GUND)
converted = unicode_single_shift_lookup(&t, c);
@@ -3094,8 +3085,7 @@
*out = converted;
++out;
-
- in = g_utf8_next_char(in);
+ in += nread;
}
if (terminator)
@@ -3243,32 +3233,6 @@
return buf;
}
-unsigned char *decode_hex(const char *in, long len, long *items_written,
- unsigned char terminator)
-{
- long i;
- char c;
- unsigned char *buf;
-
- if (len < 0)
- len = strlen(in);
-
- len &= ~0x1;
-
- for (i = 0; i < len; i++) {
- c = toupper(in[i]);
-
- if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F'))
- continue;
-
- return NULL;
- }
-
- buf = g_new(unsigned char, (len >> 1) + (terminator ? 1 : 0));
-
- return decode_hex_own_buf(in, len, items_written, terminator, buf);
-}
-
/*!
* Encodes the data using hexadecimal characters. len can be negative,
* in that case the terminator is used to find the last character. This is
@@ -3313,27 +3277,8 @@
return buf;
}
-char *encode_hex(const unsigned char *in, long len, unsigned char terminator)
-{
- char *buf;
- int i;
-
- if (len < 0) {
- i = 0;
-
- while (in[i] != terminator)
- i++;
-
- len = i;
- }
-
- buf = g_new(char, len * 2 + 1);
-
- return encode_hex_own_buf(in, len, terminator, buf);
-}
-
unsigned char *unpack_7bit_own_buf(const unsigned char *in, long len,
- int byte_offset, gboolean ussd,
+ int byte_offset, bool ussd,
long max_to_unpack, long *items_written,
unsigned char terminator,
unsigned char *buf)
@@ -3347,7 +3292,7 @@
return NULL;
/* In the case of CB, unpack as much as possible */
- if (ussd == TRUE)
+ if (ussd)
max_to_unpack = len * 8 / 7;
for (i = 0; (i < len) && ((out-buf) < max_to_unpack); i++) {
@@ -3411,18 +3356,17 @@
}
unsigned char *unpack_7bit(const unsigned char *in, long len, int byte_offset,
- gboolean ussd, long max_to_unpack,
+ bool ussd, long max_to_unpack,
long *items_written, unsigned char terminator)
{
- unsigned char *buf = g_new(unsigned char,
- len * 8 / 7 + (terminator ? 1 : 0));
+ unsigned char *buf = l_malloc(len * 8 / 7 + (terminator ? 1 : 0));
return unpack_7bit_own_buf(in, len, byte_offset, ussd, max_to_unpack,
items_written, terminator, buf);
}
unsigned char *pack_7bit_own_buf(const unsigned char *in, long len,
- int byte_offset, gboolean ussd,
+ int byte_offset, bool ussd,
long *items_written,
unsigned char terminator,
unsigned char *buf)
@@ -3495,7 +3439,7 @@
}
unsigned char *pack_7bit(const unsigned char *in, long len, int byte_offset,
- gboolean ussd, long *items_written,
+ bool ussd, long *items_written,
unsigned char terminator)
{
int bits = 7 - (byte_offset % 7);
@@ -3522,9 +3466,9 @@
/* Round up number of bytes, must append <cr> if true */
if (ussd && ((total_bits % 8) == 0) && (in[len - 1] == '\r'))
- buf = g_new(unsigned char, (total_bits + 14) / 8);
+ buf = l_malloc((total_bits + 14) / 8);
else
- buf = g_new(unsigned char, (total_bits + 7) / 8);
+ buf = l_malloc((total_bits + 7) / 8);
return pack_7bit_own_buf(in, len, byte_offset, ussd, items_written,
terminator, buf);
@@ -3542,8 +3486,8 @@
char *utf8 = NULL;
char *out;
- if (conversion_table_init(&t, GSM_DIALECT_DEFAULT,
- GSM_DIALECT_DEFAULT) == FALSE)
+ if (!conversion_table_init(&t, GSM_DIALECT_DEFAULT,
+ GSM_DIALECT_DEFAULT))
return NULL;
if (length < 1)
@@ -3574,9 +3518,7 @@
if (buffer[i] == 0xff && buffer[i + 1] == 0xff)
break;
- return g_convert((char *) buffer + 1, i - 1,
- "UTF-8//TRANSLIT", "UCS-2BE",
- NULL, NULL, NULL);
+ return l_utf8_from_ucs2be(buffer + 1, i - 1);
case 0x81:
if (length < 3 || (buffer[1] > (length - 3)))
return NULL;
@@ -3650,10 +3592,7 @@
if (buffer[i] != 0xff)
return NULL;
- utf8 = g_try_malloc(res_len + 1);
- if (utf8 == NULL)
- return NULL;
-
+ utf8 = l_malloc(res_len + 1);
i = offset;
out = utf8;
@@ -3668,7 +3607,7 @@
} else
c = gsm_locking_shift_lookup(&t, buffer[i++]);
- out += g_unichar_to_utf8(c, out);
+ out += l_utf8_from_wchar(c, out);
}
*out = '\0';
@@ -3680,9 +3619,9 @@
int *out_length)
{
unsigned char *result;
- unsigned char *ucs2;
+ void *ucs2;
long gsm_bytes;
- gsize converted;
+ size_t converted;
result = convert_utf8_to_gsm(utf, -1, NULL, &gsm_bytes, 0);
if (result) {
@@ -3698,25 +3637,21 @@
/* NOTE: UCS2 formats with an offset are never used */
- ucs2 = (guint8 *) g_convert(utf, -1, "UCS-2BE//TRANSLIT", "UTF-8",
- NULL, &converted, NULL);
- if (ucs2 == NULL)
+ ucs2 = l_utf8_to_ucs2be(utf, &converted);
+ if (!ucs2)
return NULL;
+ /* converted includes null terminator, drop */
+ converted -= 2;
+
if (max_length != -1 && (int) converted + 1 > max_length)
converted = (max_length - 1) & ~1;
- result = g_try_malloc(converted + 1);
- if (result == NULL) {
- g_free(ucs2);
- return NULL;
- }
-
- *out_length = converted + 1;
-
+ result = l_malloc(converted + 1);
result[0] = 0x80;
memcpy(&result[1], ucs2, converted);
- g_free(ucs2);
+ *out_length = converted + 1;
+ l_free(ucs2);
return result;
}
@@ -3746,7 +3681,7 @@
long res_len;
long i;
- if (conversion_table_init(&t, locking_lang, single_lang) == FALSE)
+ if (!conversion_table_init(&t, locking_lang, single_lang))
return NULL;
if (len < 1 || len % 2)
@@ -3756,11 +3691,8 @@
res_len = 0;
for (i = 0; i < len; i += 2) {
- gunichar c = (in[i] << 8) | in[i + 1];
- unsigned short converted = GUND;
-
- if (c > 0xffff)
- goto err_out;
+ uint16_t c = l_get_be16(in + i);
+ uint16_t converted = GUND;
converted = unicode_locking_shift_lookup(&t, c);
@@ -3778,16 +3710,14 @@
nchars += 1;
}
- res = g_try_malloc(res_len + (terminator ? 1 : 0));
- if (res == NULL)
- goto err_out;
+ res = l_malloc(res_len + (terminator ? 1 : 0));
in = text;
out = res;
for (i = 0; i < len; i += 2) {
- gunichar c = (in[i] << 8) | in[i + 1];
- unsigned short converted = GUND;
+ uint16_t c = l_get_be16(in + i);
+ uint16_t converted = GUND;
converted = unicode_locking_shift_lookup(&t, c);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/src/util.h
^
|
@@ -19,6 +19,8 @@
*
*/
+#include <stdbool.h>
+
enum gsm_dialect {
GSM_DIALECT_DEFAULT = 0,
GSM_DIALECT_TURKISH,
@@ -65,33 +67,27 @@
unsigned char terminator,
unsigned char *buf);
-unsigned char *decode_hex(const char *in, long len, long *items_written,
- unsigned char terminator);
-
char *encode_hex_own_buf(const unsigned char *in, long len,
unsigned char terminator, char *buf);
-char *encode_hex(const unsigned char *in, long len,
- unsigned char terminator);
-
unsigned char *unpack_7bit_own_buf(const unsigned char *in, long len,
- int byte_offset, gboolean ussd,
+ int byte_offset, bool ussd,
long max_to_unpack, long *items_written,
unsigned char terminator,
unsigned char *buf);
unsigned char *unpack_7bit(const unsigned char *in, long len, int byte_offset,
- gboolean ussd, long max_to_unpack,
+ bool ussd, long max_to_unpack,
long *items_written, unsigned char terminator);
unsigned char *pack_7bit_own_buf(const unsigned char *in, long len,
- int byte_offset, gboolean ussd,
+ int byte_offset, bool ussd,
long *items_written,
unsigned char terminator,
unsigned char *buf);
unsigned char *pack_7bit(const unsigned char *in, long len, int byte_offset,
- gboolean ussd,
+ bool ussd,
long *items_written, unsigned char terminator);
char *sim_string_to_utf8(const unsigned char *buffer, int length);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/tools/stktest.c
^
|
@@ -1189,30 +1189,6 @@
g_idle_add(end_session_and_not_canceled_after_3, NULL);
}
-static gboolean poweroff_and_canceled_after_21(gpointer user_data)
-{
- __stktest_test_finish(pending == NULL);
- return FALSE;
-}
-
-static gboolean end_session_and_canceled_after_21(gpointer user_data)
-{
- g_at_server_send_unsolicited(emulator, "+CUSATEND");
- g_timeout_add_seconds(21, poweroff_and_canceled_after_21, NULL);
-
- return FALSE;
-}
-
-static void expect_response_and_canceled_after_21(const unsigned char *pdu,
- unsigned int len)
-{
- struct test *test = cur_test->data;
-
- STKTEST_RESPONSE_ASSERT(test->rsp_pdu, test->rsp_len, pdu, len);
-
- g_idle_add(end_session_and_canceled_after_21, NULL);
-}
-
static DBusMessage *test_display_text_11(DBusMessage *msg,
const char *text,
unsigned char icon_id,
@@ -1405,7 +1381,7 @@
unsigned char icon_id,
gboolean urgent)
{
- STKTEST_AGENT_ASSERT(g_str_equal(text, "Basic Icon"));
+ STKTEST_AGENT_ASSERT(g_str_equal(text, ""));
STKTEST_AGENT_ASSERT(icon_id == 1);
STKTEST_AGENT_ASSERT(urgent == FALSE);
@@ -1417,7 +1393,7 @@
unsigned char icon_id,
gboolean urgent)
{
- STKTEST_AGENT_ASSERT(g_str_equal(text, "Colour Icon"));
+ STKTEST_AGENT_ASSERT(g_str_equal(text, ""));
STKTEST_AGENT_ASSERT(icon_id == 2);
STKTEST_AGENT_ASSERT(urgent == FALSE);
@@ -1854,7 +1830,7 @@
DBusMessage *reply;
const char *ret = "+";
- STKTEST_AGENT_ASSERT(g_str_equal(alpha, "<NO-ICON>"));
+ STKTEST_AGENT_ASSERT(g_str_equal(alpha, ""));
STKTEST_AGENT_ASSERT(icon_id == 1);
reply = dbus_message_new_method_return(msg);
@@ -1888,7 +1864,7 @@
DBusMessage *reply;
const char *ret = "+";
- STKTEST_AGENT_ASSERT(g_str_equal(alpha, "<NO-ICON>"));
+ STKTEST_AGENT_ASSERT(g_str_equal(alpha, ""));
STKTEST_AGENT_ASSERT(icon_id == 2);
reply = dbus_message_new_method_return(msg);
@@ -2662,7 +2638,7 @@
DBusMessage *reply;
const char *ret = "+";
- STKTEST_AGENT_ASSERT(g_str_equal(alpha, "<NO-ICON>"));
+ STKTEST_AGENT_ASSERT(g_str_equal(alpha, ""));
STKTEST_AGENT_ASSERT(icon_id == 1);
STKTEST_AGENT_ASSERT(g_str_equal(def_input, ""));
STKTEST_AGENT_ASSERT(min == 0);
@@ -2710,7 +2686,7 @@
DBusMessage *reply;
const char *ret = "+";
- STKTEST_AGENT_ASSERT(g_str_equal(alpha, "<NO-ICON>"));
+ STKTEST_AGENT_ASSERT(g_str_equal(alpha, ""));
STKTEST_AGENT_ASSERT(icon_id == 2);
STKTEST_AGENT_ASSERT(g_str_equal(def_input, ""));
STKTEST_AGENT_ASSERT(min == 0);
@@ -3168,7 +3144,7 @@
unsigned char icon_id)
{
STKTEST_AGENT_ASSERT(g_str_equal(tone, "positive-acknowledgement"));
- STKTEST_AGENT_ASSERT(g_str_equal(text, "<BASIC-ICON>"));
+ STKTEST_AGENT_ASSERT(g_str_equal(text, ""));
STKTEST_AGENT_ASSERT(icon_id == 1);
return dbus_message_new_method_return(msg);
@@ -3192,7 +3168,7 @@
unsigned char icon_id)
{
STKTEST_AGENT_ASSERT(g_str_equal(tone, "positive-acknowledgement"));
- STKTEST_AGENT_ASSERT(g_str_equal(text, "<COLOUR-ICON>"));
+ STKTEST_AGENT_ASSERT(g_str_equal(text, ""));
STKTEST_AGENT_ASSERT(icon_id == 2);
return dbus_message_new_method_return(msg);
@@ -3510,7 +3486,7 @@
display_text_response_421,
sizeof(display_text_response_421),
test_display_text_42,
- expect_response_and_canceled_after_21);
+ expect_response_and_not_canceled_after_3);
stktest_add_test("Display Text 4.3", "DisplayText",
display_text_431, sizeof(display_text_431),
display_text_response_431,
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/unit/test-common.c
^
|
@@ -29,10 +29,14 @@
#include <assert.h>
#include <glib.h>
+#include <ell/ell.h>
+
#include <ofono/types.h>
#include "common.h"
+static const bool VERBOSE = false;
+
static const char *invalid_strings[] = {
"33",
"*",
@@ -71,8 +75,8 @@
gboolean ret;
for (i = 0; invalid_strings[i]; i++) {
- if (g_test_verbose())
- g_print("%s...\n", invalid_strings[i]);
+ if (VERBOSE)
+ printf("%s...\n", invalid_strings[i]);
str = strdup(invalid_strings[i]);
@@ -122,8 +126,8 @@
int i;
for (i = 0; valid_strings[i]; i++) {
- if (g_test_verbose())
- g_print("%s...", valid_strings[i]);
+ if (VERBOSE)
+ printf("%s...", valid_strings[i]);
str = strdup(valid_strings[i]);
@@ -134,8 +138,8 @@
g_assert(ret == TRUE);
- if (g_test_verbose())
- g_print("parsed as: %d, %s, %s, %s, %s, %s\n",
+ if (VERBOSE)
+ printf("parsed as: %d, %s, %s, %s, %s, %s\n",
type, sc, sia, sib, sic, dn);
free(str);
@@ -164,8 +168,8 @@
gboolean res;
for (i = 0; valid_apns[i]; i++) {
- if (g_test_verbose())
- g_print("Test Valid:%s\n", valid_apns[i]);
+ if (VERBOSE)
+ printf("Test Valid:%s\n", valid_apns[i]);
res = is_valid_apn(valid_apns[i]);
@@ -173,8 +177,8 @@
}
for (i = 0; invalid_apns[i]; i++) {
- if (g_test_verbose())
- g_print("Test Invalid:%s\n", invalid_apns[i]);
+ if (VERBOSE)
+ printf("Test Invalid:%s\n", invalid_apns[i]);
res = is_valid_apn(invalid_apns[i]);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/unit/test-simutil.c
^
|
@@ -27,6 +27,7 @@
#include <stdio.h>
#include <assert.h>
#include <glib.h>
+#include <ell/ell.h>
#include <ofono/types.h>
@@ -407,12 +408,12 @@
static void test_3g_status_data(void)
{
unsigned char *response;
- long len;
+ size_t len;
int flen, rlen, str;
unsigned char access[3];
unsigned short efid;
- response = decode_hex(binary_ef, -1, &len, 0);
+ response = l_util_from_hexstring(binary_ef, &len);
sim_parse_3g_get_response(response, len, &flen, &rlen, &str,
access, &efid);
@@ -427,7 +428,7 @@
g_free(response);
- response = decode_hex(record_ef, -1, &len, 0);
+ response = l_util_from_hexstring(record_ef, &len);
sim_parse_3g_get_response(response, len, &flen, &rlen, &str,
access, &efid);
@@ -450,11 +451,11 @@
static void test_application_entry_decode(void)
{
unsigned char *ef_dir;
- long len;
+ size_t len;
GSList *entries;
struct sim_app_record *app[2];
- ef_dir = decode_hex(at_cuad_response, -1, &len, 0);
+ ef_dir = l_util_from_hexstring(at_cuad_response, &len);
entries = sim_parse_app_template_entries(ef_dir, len);
g_assert(g_slist_length(entries) == 2);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/unit/test-sms-root.c
^
|
@@ -29,11 +29,12 @@
#include <string.h>
#include <glib.h>
-#include <glib/gprintf.h>
#include "util.h"
#include "smsutil.h"
+static const bool VERBOSE = false;
+
static const char *assembly_pdu1 = "038121F340048155550119906041001222048C0500"
"031E0301041804420430043A002C002004100"
"43B0435043A04410430043D04340440002000"
@@ -81,10 +82,10 @@
l = sms_assembly_add_fragment(assembly, &sms, time(NULL),
&sms.deliver.oaddr, ref, max, seq);
- if (g_test_verbose()) {
- g_print("Ref: %u\n", ref);
- g_print("Max: %u\n", max);
- g_print("From: %s\n",
+ if (VERBOSE) {
+ printf("Ref: %u\n", ref);
+ printf("Max: %u\n", max);
+ printf("From: %s\n",
sms_address_to_string(&sms.deliver.oaddr));
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/unit/test-sms.c
^
|
@@ -27,13 +27,16 @@
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
+#include <strings.h>
+#include <ell/ell.h>
#include <glib.h>
-#include <glib/gprintf.h>
#include "util.h"
#include "smsutil.h"
+static const bool VERBOSE = false;
+
static const char *simple_deliver = "07911326040000F0"
"040B911346610089F60000208062917314480CC8F71D14969741F977FD07";
static const char *alnum_sender = "0791447758100650"
@@ -56,13 +59,13 @@
struct tm remote;
char buf[128];
- g_print("%s: (YY-MM-DD) %02d-%02d-%02d\n", prefix,
+ printf("%s: (YY-MM-DD) %02d-%02d-%02d\n", prefix,
(int)scts->year, (int)scts->month, (int)scts->day);
- g_print("%s: (HH-MM-SS) %02d:%02d:%02d\n", prefix,
+ printf("%s: (HH-MM-SS) %02d:%02d:%02d\n", prefix,
(int)scts->hour, (int)scts->minute, (int)scts->second);
- g_print("%s: Timezone %d hours %d minutes\n", prefix,
+ printf("%s: Timezone %d hours %d minutes\n", prefix,
(int)scts->timezone / 4,
(int)((abs(scts->timezone) % 4) * 15));
@@ -71,32 +74,32 @@
strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", localtime(&ts));
buf[127] = '\0';
- g_print("local time: %s\n", buf);
+ printf("local time: %s\n", buf);
strftime(buf, 127, "%Y-%m-%dT%H:%M:%S%z", &remote);
buf[127] = '\0';
- g_print("remote time: %s\n", buf);
+ printf("remote time: %s\n", buf);
}
static void print_vpf(enum sms_validity_period_format vpf,
struct sms_validity_period *vp)
{
- g_print("Validity Period Format: %d\n", (int)vpf);
+ printf("Validity Period Format: %d\n", (int)vpf);
switch (vpf) {
case SMS_VALIDITY_PERIOD_FORMAT_ABSENT:
- g_print("Validity-Period: Absent\n");
+ printf("Validity-Period: Absent\n");
break;
case SMS_VALIDITY_PERIOD_FORMAT_RELATIVE:
- g_print("Validity-Period: %d\n",
+ printf("Validity-Period: %d\n",
(int)vp->relative);
break;
case SMS_VALIDITY_PERIOD_FORMAT_ABSOLUTE:
print_scts(&vp->absolute, "Validity-Period:");
break;
case SMS_VALIDITY_PERIOD_FORMAT_ENHANCED:
- g_print("Validity-Period: Enhanced");
+ printf("Validity-Period: Enhanced");
break;
}
}
@@ -104,39 +107,39 @@
static void dump_details(struct sms *sms)
{
if (sms->sc_addr.address[0] == '\0')
- g_print("SMSC Address absent, default will be used\n");
+ printf("SMSC Address absent, default will be used\n");
else
- g_print("SMSC Address number_type: %d, number_plan: %d, %s\n",
+ printf("SMSC Address number_type: %d, number_plan: %d, %s\n",
(int)sms->sc_addr.number_type,
(int)sms->sc_addr.numbering_plan, sms->sc_addr.address);
switch (sms->type) {
case SMS_TYPE_DELIVER:
- g_print("Type: Deliver\n");
+ printf("Type: Deliver\n");
- g_print("Originator-Address: %d, %d, %s\n",
+ printf("Originator-Address: %d, %d, %s\n",
(int)sms->deliver.oaddr.number_type,
(int)sms->deliver.oaddr.numbering_plan,
sms->deliver.oaddr.address);
- g_print("PID: %d\n", (int)sms->deliver.pid);
- g_print("DCS: %d\n", (int)sms->deliver.dcs);
+ printf("PID: %d\n", (int)sms->deliver.pid);
+ printf("DCS: %d\n", (int)sms->deliver.dcs);
print_scts(&sms->deliver.scts, "Timestamp");
break;
case SMS_TYPE_SUBMIT:
- g_print("Type: Submit\n");
+ printf("Type: Submit\n");
- g_print("Message Reference: %u\n", (int)sms->submit.mr);
+ printf("Message Reference: %u\n", (int)sms->submit.mr);
- g_print("Destination-Address: %d, %d, %s\n",
+ printf("Destination-Address: %d, %d, %s\n",
(int)sms->submit.daddr.number_type,
(int)sms->submit.daddr.numbering_plan,
sms->submit.daddr.address);
- g_print("PID: %d\n", (int)sms->submit.pid);
- g_print("DCS: %d\n", (int)sms->submit.dcs);
+ printf("PID: %d\n", (int)sms->submit.pid);
+ printf("DCS: %d\n", (int)sms->submit.dcs);
print_vpf(sms->submit.vpf, &sms->submit.vp);
@@ -156,25 +159,22 @@
{
struct sms sms;
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
int data_len;
unsigned char *unpacked;
char *utf8;
- decoded_pdu = decode_hex(simple_deliver, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(simple_deliver, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(simple_deliver) / 2);
+ g_assert(pdu_len == strlen(simple_deliver) / 2);
ret = sms_decode(decoded_pdu, pdu_len, FALSE, 30, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_DELIVER);
- if (g_test_verbose())
+ if (VERBOSE)
dump_details(&sms);
g_assert(sms.sc_addr.number_type == SMS_NUMBER_TYPE_INTERNATIONAL);
@@ -204,48 +204,43 @@
g_assert(data_len == 11);
- unpacked = unpack_7bit(sms.deliver.ud, data_len, 0, FALSE,
+ unpacked = unpack_7bit(sms.deliver.ud, data_len, 0, false,
sms.deliver.udl, NULL, 0xff);
g_assert(unpacked);
utf8 = convert_gsm_to_utf8(unpacked, -1, NULL, NULL, 0xff);
-
- g_free(unpacked);
+ l_free(unpacked);
g_assert(utf8);
- if (g_test_verbose())
- g_print("Decoded user data is: %s\n", utf8);
+ if (VERBOSE)
+ printf("Decoded user data is: %s\n", utf8);
g_assert(strcmp(utf8, "How are you?") == 0);
-
- g_free(utf8);
+ l_free(utf8);
}
static void test_alnum_sender(void)
{
struct sms sms;
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
int data_len;
unsigned char *unpacked;
char *utf8;
- decoded_pdu = decode_hex(alnum_sender, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(alnum_sender, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(alnum_sender) / 2);
+ g_assert(pdu_len == strlen(alnum_sender) / 2);
ret = sms_decode(decoded_pdu, pdu_len, FALSE, 27, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_DELIVER);
- if (g_test_verbose())
+ if (VERBOSE)
dump_details(&sms);
g_assert(sms.sc_addr.number_type == SMS_NUMBER_TYPE_INTERNATIONAL);
@@ -270,161 +265,139 @@
g_assert(sms.deliver.scts.timezone == 4);
g_assert(sms.deliver.udl == 8);
-
data_len = sms_udl_in_bytes(sms.deliver.udl, sms.deliver.dcs);
-
g_assert(data_len == 7);
- unpacked = unpack_7bit(sms.deliver.ud, data_len, 0, FALSE,
+ unpacked = unpack_7bit(sms.deliver.ud, data_len, 0, false,
sms.deliver.udl, NULL, 0xff);
-
g_assert(unpacked);
utf8 = convert_gsm_to_utf8(unpacked, -1, NULL, NULL, 0xff);
-
- g_free(unpacked);
-
+ l_free(unpacked);
g_assert(utf8);
- if (g_test_verbose())
- g_print("Decoded user data is: %s\n", utf8);
+ if (VERBOSE)
+ printf("Decoded user data is: %s\n", utf8);
g_assert(strcmp(utf8, "Testmail") == 0);
- g_free(utf8);
+ l_free(utf8);
}
static void test_deliver_encode(void)
{
struct sms sms;
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
unsigned char pdu[176];
int encoded_pdu_len;
int encoded_tpdu_len;
char *encoded_pdu;
- decoded_pdu = decode_hex(simple_deliver, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(simple_deliver, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(simple_deliver) / 2);
+ g_assert(pdu_len == strlen(simple_deliver) / 2);
ret = sms_decode(decoded_pdu, pdu_len, FALSE, 30, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_DELIVER);
ret = sms_encode(&sms, &encoded_pdu_len, &encoded_tpdu_len, pdu);
- if (g_test_verbose()) {
+ if (VERBOSE) {
int i;
for (i = 0; i < encoded_pdu_len; i++)
- g_print("%02X", pdu[i]);
- g_print("\n");
+ printf("%02X", pdu[i]);
+ printf("\n");
}
g_assert(ret);
g_assert(encoded_tpdu_len == 30);
- g_assert(encoded_pdu_len == pdu_len);
-
- encoded_pdu = encode_hex(pdu, encoded_pdu_len, 0);
-
- g_assert(strcmp(simple_deliver, encoded_pdu) == 0);
+ g_assert(encoded_pdu_len == (long)pdu_len);
- g_free(encoded_pdu);
-
- decoded_pdu = decode_hex(alnum_sender, -1, &pdu_len, 0);
+ encoded_pdu = l_util_hexstring(pdu, encoded_pdu_len);
+ g_assert(strcasecmp(simple_deliver, encoded_pdu) == 0);
+ l_free(encoded_pdu);
+ decoded_pdu = l_util_from_hexstring(alnum_sender, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(alnum_sender) / 2);
+ g_assert(pdu_len == strlen(alnum_sender) / 2);
ret = sms_decode(decoded_pdu, pdu_len, FALSE, 27, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_DELIVER);
ret = sms_encode(&sms, &encoded_pdu_len, &encoded_tpdu_len, pdu);
- if (g_test_verbose()) {
+ if (VERBOSE) {
int i;
for (i = 0; i < encoded_pdu_len; i++)
- g_print("%02X", pdu[i]);
- g_print("\n");
+ printf("%02X", pdu[i]);
+ printf("\n");
}
g_assert(ret);
g_assert(encoded_tpdu_len == 27);
- g_assert(encoded_pdu_len == pdu_len);
+ g_assert(encoded_pdu_len == (long)pdu_len);
- encoded_pdu = encode_hex(pdu, encoded_pdu_len, 0);
-
- g_assert(strcmp(alnum_sender, encoded_pdu) == 0);
-
- g_free(encoded_pdu);
+ encoded_pdu = l_util_hexstring(pdu, encoded_pdu_len);
+ g_assert(strcasecmp(alnum_sender, encoded_pdu) == 0);
+ l_free(encoded_pdu);
/* test unicode_deliver*/
- decoded_pdu = decode_hex(unicode_deliver, -1, &pdu_len, 0);
+ decoded_pdu = l_util_from_hexstring(unicode_deliver, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(unicode_deliver) / 2);
+ g_assert(pdu_len == strlen(unicode_deliver) / 2);
ret = sms_decode(decoded_pdu, pdu_len, FALSE, 149, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_DELIVER);
ret = sms_encode(&sms, &encoded_pdu_len, &encoded_tpdu_len, pdu);
- if (g_test_verbose()) {
+ if (VERBOSE) {
int i;
for (i = 0; i < encoded_pdu_len; i++)
- g_print("%02X", pdu[i]);
- g_print("\n");
+ printf("%02X", pdu[i]);
+ printf("\n");
}
g_assert(ret);
g_assert(encoded_tpdu_len == 149);
- g_assert(encoded_pdu_len == pdu_len);
-
- encoded_pdu = encode_hex(pdu, encoded_pdu_len, 0);
-
- g_assert(strcmp(unicode_deliver, encoded_pdu) == 0);
+ g_assert(encoded_pdu_len == (long)pdu_len);
- g_free(encoded_pdu);
+ encoded_pdu = l_util_hexstring(pdu, encoded_pdu_len);
+ g_assert(strcasecmp(unicode_deliver, encoded_pdu) == 0);
+ l_free(encoded_pdu);
}
static void test_simple_submit(void)
{
struct sms sms;
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
int data_len;
unsigned char *unpacked;
char *utf8;
- decoded_pdu = decode_hex(simple_submit, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(simple_submit, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(simple_submit) / 2);
+ g_assert(pdu_len == strlen(simple_submit) / 2);
ret = sms_decode(decoded_pdu, pdu_len, TRUE, 23, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_SUBMIT);
- if (g_test_verbose())
+ if (VERBOSE)
dump_details(&sms);
g_assert(strlen(sms.sc_addr.address) == 0);
@@ -446,95 +419,81 @@
g_assert(sms.submit.udl == 10);
data_len = sms_udl_in_bytes(sms.submit.udl, sms.submit.dcs);
-
g_assert(data_len == 9);
- unpacked = unpack_7bit(sms.submit.ud, data_len, 0, FALSE,
+ unpacked = unpack_7bit(sms.submit.ud, data_len, 0, false,
sms.submit.udl, NULL, 0xff);
-
g_assert(unpacked);
-
utf8 = convert_gsm_to_utf8(unpacked, -1, NULL, NULL, 0xff);
-
- g_free(unpacked);
-
+ l_free(unpacked);
g_assert(utf8);
- if (g_test_verbose())
- g_print("Decoded user data is: %s\n", utf8);
+ if (VERBOSE)
+ printf("Decoded user data is: %s\n", utf8);
g_assert(strcmp(utf8, "hellohello") == 0);
-
- g_free(utf8);
+ l_free(utf8);
}
static void test_submit_encode(void)
{
struct sms sms;
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
unsigned char pdu[176];
int encoded_pdu_len;
int encoded_tpdu_len;
char *encoded_pdu;
- decoded_pdu = decode_hex(simple_submit, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(simple_submit, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(simple_submit) / 2);
+ g_assert(pdu_len == strlen(simple_submit) / 2);
ret = sms_decode(decoded_pdu, pdu_len, TRUE, 23, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_SUBMIT);
ret = sms_encode(&sms, &encoded_pdu_len, &encoded_tpdu_len, pdu);
- if (g_test_verbose()) {
+ if (VERBOSE) {
int i;
for (i = 0; i < encoded_pdu_len; i++)
- g_print("%02X", pdu[i]);
- g_print("\n");
+ printf("%02X", pdu[i]);
+ printf("\n");
}
g_assert(ret);
g_assert(encoded_tpdu_len == 23);
- g_assert(encoded_pdu_len == pdu_len);
+ g_assert(encoded_pdu_len == (long)pdu_len);
- encoded_pdu = encode_hex(pdu, encoded_pdu_len, 0);
-
- g_assert(strcmp(simple_submit, encoded_pdu) == 0);
-
- g_free(encoded_pdu);
+ encoded_pdu = l_util_hexstring(pdu, encoded_pdu_len);
+ g_assert(strcasecmp(simple_submit, encoded_pdu) == 0);
+ l_free(encoded_pdu);
}
static void test_simple_mwi(void)
{
struct sms sms;
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
enum sms_mwi_type type;
gboolean active;
gboolean discard;
- decoded_pdu = decode_hex(simple_mwi, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(simple_mwi, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(simple_mwi) / 2);
+ g_assert(pdu_len == strlen(simple_mwi) / 2);
ret = sms_decode(decoded_pdu, pdu_len, FALSE, 19, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_DELIVER);
- if (g_test_verbose())
+ if (VERBOSE)
dump_details(&sms);
g_assert(sms.sc_addr.number_type == SMS_NUMBER_TYPE_INTERNATIONAL);
@@ -576,8 +535,8 @@
sms_udh_iter_get_ie_data(&iter, evm_iei);
sms_udh_iter_get_ie_length(&iter);
- if (g_test_verbose())
- g_print("Enhanced Voicemail IEI\n");
+ if (VERBOSE)
+ printf("Enhanced Voicemail IEI\n");
break;
}
@@ -588,8 +547,8 @@
sms_udh_iter_get_ie_data(&iter, special_iei);
sms_udh_iter_get_ie_length(&iter);
- if (g_test_verbose())
- g_print("Special Voicemail IEI\n");
+ if (VERBOSE)
+ printf("Special Voicemail IEI\n");
break;
}
@@ -606,10 +565,9 @@
&discard);
g_assert(ret);
- if (g_test_verbose()) {
- g_print("Type: %d, Active: %d, Discard: %d\n",
+ if (VERBOSE) {
+ printf("Type: %d, Active: %d, Discard: %d\n",
type, active, discard);
-
}
}
@@ -778,24 +736,20 @@
struct sms sms;
unsigned char *pdu;
unsigned char *unpacked;
- long pdu_len;
+ size_t pdu_len;
int data_len;
enum sms_charset sms_charset;
gboolean sms_compressed;
char *text;
struct sms_charset_data *data = (struct sms_charset_data *)param;
- pdu = decode_hex(data->pdu, -1, &pdu_len, 0);
-
+ pdu = l_util_from_hexstring(data->pdu, &pdu_len);
g_assert(pdu);
- g_assert(pdu_len == (gint64)strlen(data->pdu) / 2);
+ g_assert(pdu_len == strlen(data->pdu) / 2);
ret = sms_decode(pdu, pdu_len, FALSE, pdu_len, &sms);
-
g_assert(ret);
-
- g_free(pdu);
-
+ l_free(pdu);
g_assert(sms.type == SMS_TYPE_DELIVER);
ret = sms_dcs_decode(sms.deliver.dcs, NULL, &sms_charset,
@@ -806,24 +760,19 @@
g_assert(sms_compressed == FALSE);
data_len = sms_udl_in_bytes(sms.deliver.udl, sms.deliver.dcs);
-
g_assert(data_len == data->data_len);
- unpacked = unpack_7bit(sms.deliver.ud, data_len, 0, FALSE,
+ unpacked = unpack_7bit(sms.deliver.ud, data_len, 0, false,
sms.deliver.udl, NULL, 0xff);
-
g_assert(unpacked);
text = convert_gsm_to_utf8_with_lang(unpacked, -1, NULL, NULL, 0xff,
data->locking_lang, data->single_lang);
g_assert(text);
-
- g_free(unpacked);
-
+ l_free(unpacked);
g_assert(strcmp(data->expected_text, text) == 0);
-
- g_free(text);
+ l_free(text);
}
struct text_format_header {
@@ -956,7 +905,7 @@
const struct ems_udh_test *test = data;
struct sms sms;
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
unsigned int data_len;
unsigned int udhl;
@@ -966,19 +915,16 @@
char *utf8;
int i;
- decoded_pdu = decode_hex(test->pdu, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(test->pdu, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(test->pdu) / 2);
+ g_assert(pdu_len == strlen(test->pdu) / 2);
ret = sms_decode(decoded_pdu, pdu_len, TRUE, test->len, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_SUBMIT);
- if (g_test_verbose())
+ if (VERBOSE)
dump_details(&sms);
udhl = sms.submit.ud[0];
@@ -990,17 +936,17 @@
g_assert(ret);
for (i = 0; test->formats[i].len; i++) {
- if (g_test_verbose()) {
+ if (VERBOSE) {
int j;
unsigned char ie_data[4];
sms_udh_iter_get_ie_data(&iter, ie_data);
- g_print("Header:\n");
+ printf("Header:\n");
for (j = 0; j < sms_udh_iter_get_ie_length(&iter); j++)
- g_print("0x%02x ", ie_data[j]);
+ printf("0x%02x ", ie_data[j]);
- g_print("\n");
+ printf("\n");
}
g_assert(sms_udh_iter_get_ie_type(&iter) ==
@@ -1020,28 +966,22 @@
}
data_len = sms_udl_in_bytes(sms.submit.udl, sms.submit.dcs);
-
g_assert(data_len == test->data_len);
max_chars = (data_len - (udhl + 1)) * 8 / 7;
-
unpacked = unpack_7bit(sms.submit.ud + udhl + 1, data_len - (udhl + 1),
- udhl + 1, FALSE, max_chars, NULL, 0xff);
-
+ udhl + 1, false, max_chars, NULL, 0xff);
g_assert(unpacked);
utf8 = convert_gsm_to_utf8(unpacked, -1, NULL, NULL, 0xff);
-
- g_free(unpacked);
-
+ l_free(unpacked);
g_assert(utf8);
- if (g_test_verbose())
- g_print("Decoded user data is: %s\n", utf8);
+ if (VERBOSE)
+ printf("Decoded user data is: %s\n", utf8);
g_assert(strcmp(utf8, test->expected) == 0);
-
- g_free(utf8);
+ l_free(utf8);
}
static const char *assembly_pdu1 = "038121F340048155550119906041001222048C0500"
@@ -1093,10 +1033,10 @@
l = sms_assembly_add_fragment(assembly, &sms, time(NULL),
&sms.deliver.oaddr, ref, max, seq);
- if (g_test_verbose()) {
- g_print("Ref: %u\n", ref);
- g_print("Max: %u\n", max);
- g_print("From: %s\n",
+ if (VERBOSE) {
+ printf("Ref: %u\n", ref);
+ printf("Max: %u\n", max);
+ printf("From: %s\n",
sms_address_to_string(&sms.deliver.oaddr));
}
@@ -1136,8 +1076,8 @@
sms_assembly_free(assembly);
- if (g_test_verbose())
- g_printf("Text:\n%s\n", utf8);
+ if (VERBOSE)
+ printf("Text:\n%s\n", utf8);
l = sms_text_prepare("555", utf8, ref, TRUE, FALSE);
g_assert(l);
@@ -1147,8 +1087,8 @@
g_slist_free_full(l, g_free);
- if (g_test_verbose())
- g_printf("ReEncoded:\n%s\n", reencoded);
+ if (VERBOSE)
+ printf("ReEncoded:\n%s\n", reencoded);
g_assert(strcmp(utf8, reencoded) == 0);
@@ -1182,8 +1122,8 @@
sms->sc_addr.numbering_plan = SMS_NUMBERING_PLAN_ISDN;
strcpy(sms->sc_addr.address, sc_addr+1);
- if (g_test_verbose())
- g_print("sc_addr: %s\n", sms_address_to_string(&sms->sc_addr));
+ if (VERBOSE)
+ printf("sc_addr: %s\n", sms_address_to_string(&sms->sc_addr));
g_assert(!strcmp(sc_addr, sms_address_to_string(&sms->sc_addr)));
@@ -1191,8 +1131,8 @@
sms->submit.daddr.numbering_plan = SMS_NUMBERING_PLAN_ISDN;
strcpy(sms->submit.daddr.address, da_addr+1);
- if (g_test_verbose())
- g_print("da_addr: %s\n",
+ if (VERBOSE)
+ printf("da_addr: %s\n",
sms_address_to_string(&sms->submit.daddr));
g_assert(!strcmp(da_addr,
@@ -1202,19 +1142,17 @@
g_assert(ret);
- if (g_test_verbose()) {
+ if (VERBOSE) {
int i;
for (i = 0; i < encoded_pdu_len; i++)
- g_print("%02X", pdu[i]);
- g_print("\n");
+ printf("%02X", pdu[i]);
+ printf("\n");
}
- encoded_pdu = encode_hex(pdu, encoded_pdu_len, 0);
-
- g_assert(strcmp(expected_no_fragmentation_7bit, encoded_pdu) == 0);
-
- g_free(encoded_pdu);
+ encoded_pdu = l_util_hexstring(pdu, encoded_pdu_len);
+ g_assert(strcasecmp(expected_no_fragmentation_7bit, encoded_pdu) == 0);
+ l_free(encoded_pdu);
g_slist_free_full(r, g_free);
}
@@ -1250,8 +1188,8 @@
guint8 max;
guint8 seq;
- if (g_test_verbose())
- g_print("strlen: %zd\n", strlen(test->str));
+ if (VERBOSE)
+ printf("strlen: %zd\n", strlen(test->str));
r = sms_text_prepare("+15554449999", test->str, 0, TRUE, FALSE);
g_assert(r);
@@ -1265,10 +1203,10 @@
sms_encode(sms, &pdu_len, &tpdu_len, pdu);
g_assert(pdu_len == (tpdu_len + 1));
- strpdu = encode_hex(pdu, pdu_len, 0);
+ strpdu = l_util_hexstring(pdu, pdu_len);
- if (g_test_verbose())
- g_printf("PDU: %s, len: %d, tlen: %d\n",
+ if (VERBOSE)
+ printf("PDU: %s, len: %d, tlen: %d\n",
strpdu, pdu_len, tpdu_len);
pdus = g_slist_append(pdus, strpdu);
}
@@ -1281,14 +1219,14 @@
decode_hex_own_buf((char *)l->data, -1, &len, 0, pdu);
- if (g_test_verbose())
- g_print("PDU Len: %ld\n", len);
+ if (VERBOSE)
+ printf("PDU Len: %ld\n", len);
ok = sms_decode(pdu, len, TRUE, len - 1, &decoded);
g_assert(ok);
- if (g_test_verbose())
- g_print("Pdu udl: %d\n", (int)decoded.submit.udl);
+ if (VERBOSE)
+ printf("Pdu udl: %d\n", (int)decoded.submit.udl);
sms_extract_concatenation(&decoded, &ref, &max, &seq);
r = sms_assembly_add_fragment(assembly, &decoded, time(NULL),
@@ -1300,13 +1238,13 @@
decoded_str = sms_decode_text(r);
- if (g_test_verbose())
- g_printf("Decoded String: %s\n", decoded_str);
+ if (VERBOSE)
+ printf("Decoded String: %s\n", decoded_str);
g_assert(decoded_str);
g_assert(strcmp(decoded_str, test->str) == 0);
g_free(decoded_str);
- g_slist_free_full(pdus, g_free);
+ g_slist_free_full(pdus, l_free);
g_slist_free_full(r, g_free);
sms_assembly_free(assembly);
}
@@ -1387,7 +1325,7 @@
static void test_cbs_encode_decode(void)
{
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
struct cbs cbs;
unsigned char pdu[88];
@@ -1397,15 +1335,14 @@
char iso639_lang[3];
char *utf8;
- decoded_pdu = decode_hex(cbs1, -1, &pdu_len, 0);
+ decoded_pdu = l_util_from_hexstring(cbs1, &pdu_len);
g_assert(decoded_pdu);
- g_assert(pdu_len == (long)strlen(cbs1) / 2);
+ g_assert(pdu_len == strlen(cbs1) / 2);
g_assert(pdu_len == 88);
ret = cbs_decode(decoded_pdu, pdu_len, &cbs);
-
- g_free(decoded_pdu);
+ l_free(decoded_pdu);
g_assert(ret);
@@ -1423,18 +1360,18 @@
g_assert(utf8);
- if (g_test_verbose()) {
- g_printf("%s\n", utf8);
+ if (VERBOSE) {
+ printf("%s\n", utf8);
if (iso639_lang[0] == '\0')
- g_printf("Lang: Unspecified\n");
+ printf("Lang: Unspecified\n");
else
- g_printf("Lang: %s\n", iso639_lang);
+ printf("Lang: %s\n", iso639_lang);
}
g_assert(strcmp(utf8, "Belconnen") == 0);
g_assert(strcmp(iso639_lang, "en") == 0);
- g_free(utf8);
+ l_free(utf8);
g_slist_free(l);
@@ -1442,17 +1379,15 @@
g_assert(ret);
- encoded_pdu = encode_hex(pdu, len, 0);
-
- g_assert(strcmp(cbs1, encoded_pdu) == 0);
-
- g_free(encoded_pdu);
+ encoded_pdu = l_util_hexstring(pdu, len);
+ g_assert(strcasecmp(cbs1, encoded_pdu) == 0);
+ l_free(encoded_pdu);
}
static void test_cbs_assembly(void)
{
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
struct cbs dec1;
struct cbs dec2;
struct cbs_assembly *assembly;
@@ -1464,13 +1399,13 @@
g_assert(assembly);
- decoded_pdu = decode_hex(cbs1, -1, &pdu_len, 0);
+ decoded_pdu = l_util_from_hexstring(cbs1, &pdu_len);
cbs_decode(decoded_pdu, pdu_len, &dec1);
- g_free(decoded_pdu);
+ l_free(decoded_pdu);
- decoded_pdu = decode_hex(cbs2, -1, &pdu_len, 0);
+ decoded_pdu = l_util_from_hexstring(cbs2, &pdu_len);
cbs_decode(decoded_pdu, pdu_len, &dec2);
- g_free(decoded_pdu);
+ l_free(decoded_pdu);
/* Add an initial page to the assembly */
l = cbs_assembly_add_page(assembly, &dec1);
@@ -1518,17 +1453,17 @@
g_assert(utf8);
- if (g_test_verbose()) {
- g_printf("%s\n", utf8);
+ if (VERBOSE) {
+ printf("%s\n", utf8);
if (iso639_lang[0] == '\0')
- g_printf("Lang: Unspecified\n");
+ printf("Lang: Unspecified\n");
else
- g_printf("Lang: %s\n", iso639_lang);
+ printf("Lang: %s\n", iso639_lang);
}
g_assert(strcmp(utf8, "BelconnenFraserBelconnen") == 0);
- g_free(utf8);
+ l_free(utf8);
g_slist_free_full(l, g_free);
cbs_assembly_free(assembly);
@@ -1537,22 +1472,19 @@
static void test_cbs_padding_character(void)
{
unsigned char *decoded_pdu;
- long pdu_len;
+ size_t pdu_len;
gboolean ret;
struct cbs cbs;
GSList *l;
char iso639_lang[3];
char *utf8;
- decoded_pdu = decode_hex(cbs3, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(cbs3, &pdu_len);
g_assert(decoded_pdu);
g_assert(pdu_len == 88);
ret = cbs_decode(decoded_pdu, pdu_len, &cbs);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(cbs.gs == CBS_GEO_SCOPE_CELL_IMMEDIATE);
@@ -1566,15 +1498,14 @@
l = g_slist_append(NULL, &cbs);
utf8 = cbs_decode_text(l, iso639_lang);
-
g_assert(utf8);
- if (g_test_verbose()) {
- g_printf("%s\n", utf8);
+ if (VERBOSE) {
+ printf("%s\n", utf8);
if (iso639_lang[0] == '\0')
- g_printf("Lang: Unspecified\n");
+ printf("Lang: Unspecified\n");
else
- g_printf("Lang: %s\n", iso639_lang);
+ printf("Lang: %s\n", iso639_lang);
}
g_assert(strcmp(utf8, "b£$¥èéùìòÇ\x0AØø\x0DÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\"#¤"
@@ -1582,7 +1513,7 @@
"NOPQRSTUVWXYZÄÖ") == 0);
g_assert(strcmp(iso639_lang, "en") == 0);
- g_free(utf8);
+ l_free(utf8);
g_slist_free(l);
}
@@ -1616,8 +1547,8 @@
g_assert(rangestr);
- if (g_test_verbose())
- g_print("range: %s\n", rangestr);
+ if (VERBOSE)
+ printf("range: %s\n", rangestr);
g_free(rangestr);
g_slist_free_full(r, g_free);
@@ -1658,16 +1589,16 @@
decode_hex_own_buf(sr_pdu3, -1, &pdu_len, 0, pdu);
g_assert(sms_decode(pdu, pdu_len, FALSE, 24, &sr3) == TRUE);
- if (g_test_verbose()) {
- g_print("sr1 address: %s, mr: %d\n",
+ if (VERBOSE) {
+ printf("sr1 address: %s, mr: %d\n",
sms_address_to_string(&sr1.status_report.raddr),
sr1.status_report.mr);
- g_print("sr2 address: %s, mr: %d\n",
+ printf("sr2 address: %s, mr: %d\n",
sms_address_to_string(&sr2.status_report.raddr),
sr2.status_report.mr);
- g_print("sr3 address: %s, mr: %d\n",
+ printf("sr3 address: %s, mr: %d\n",
sms_address_to_string(&sr3.status_report.raddr),
sr3.status_report.mr);
}
@@ -1742,7 +1673,7 @@
struct sms sms;
unsigned char *decoded_pdu;
gboolean ret;
- long pdu_len;
+ size_t pdu_len;
long data_len;
enum sms_class cls;
enum sms_charset charset;
@@ -1751,18 +1682,15 @@
int dst_port, src_port;
gboolean is_8bit;
- decoded_pdu = decode_hex(test->pdu, -1, &pdu_len, 0);
-
+ decoded_pdu = l_util_from_hexstring(test->pdu, &pdu_len);
g_assert(decoded_pdu);
ret = sms_decode(decoded_pdu, pdu_len, FALSE, test->len, &sms);
-
- g_free(decoded_pdu);
-
+ l_free(decoded_pdu);
g_assert(ret);
g_assert(sms.type == SMS_TYPE_DELIVER);
- if (g_test_verbose())
+ if (VERBOSE)
dump_details(&sms);
ret = sms_dcs_decode(sms.deliver.dcs, &cls, &charset, NULL, NULL);
@@ -1772,9 +1700,9 @@
g_assert(sms_extract_app_port(&sms, &dst_port, &src_port, &is_8bit));
- if (g_test_verbose()) {
- g_print("8bit: %d\n", is_8bit);
- g_print("src: %d, dst: %d\n", src_port, dst_port);
+ if (VERBOSE) {
+ printf("8bit: %d\n", is_8bit);
+ printf("src: %d, dst: %d\n", src_port, dst_port);
}
g_assert(is_8bit == FALSE);
@@ -1784,19 +1712,19 @@
wap_push = sms_decode_datagram(list, &data_len);
- if (g_test_verbose()) {
+ if (VERBOSE) {
int i;
- g_print("data_len: %ld\n", data_len);
+ printf("data_len: %ld\n", data_len);
for (i = 0; i < data_len; i++) {
- g_print("%02x", wap_push[i]);
+ printf("%02x", wap_push[i]);
if ((i % 16) == 15)
- g_print("\n");
+ printf("\n");
}
- g_print("\n");
+ printf("\n");
}
g_assert(wap_push);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/unit/test-stkutil.c
^
|
@@ -30,7 +30,7 @@
#include <stdint.h>
#include <glib.h>
-#include <glib/gprintf.h>
+#include <ell/ell.h>
#include <ofono/types.h>
#include "smsutil.h"
@@ -186,14 +186,14 @@
check_common_byte(command, test);
}
-static void check_items(GSList *command, const struct stk_item *test)
+static void check_items(struct l_queue *command, const struct stk_item *test)
{
struct stk_item *si;
- GSList *l;
+ const struct l_queue_entry *entry;
unsigned int i = 0;
- for (l = command; l; l = l->next) {
- si = l->data;
+ for (entry = l_queue_get_entries(command); entry; entry = entry->next) {
+ si = entry->data;
check_item(si, &test[i++]);
}
@@ -278,6 +278,7 @@
message = sms_decode_text(sms_list);
g_assert(g_str_equal(message, ts->ud));
g_free(message);
+ g_slist_free(sms_list);
}
break;
@@ -318,16 +319,17 @@
}
/* Defined in TS 102.223 Section 8.18 */
-static void check_file_list(GSList *command, const struct stk_file *test)
+static void check_file_list(struct l_queue *command,
+ const struct stk_file *test)
{
struct stk_file *sf;
- GSList *l;
+ const struct l_queue_entry *entry = l_queue_get_entries(command);
unsigned int i = 0;
- for (l = command; l; l = l->next) {
- sf = l->data;
+ for (; entry; entry = entry->next) {
+ sf = entry->data;
g_assert(sf->len == test[i].len);
- g_assert(g_mem_equal(sf->file, test[i++].file, sf->len));
+ g_assert(!memcmp(sf->file, test[i++].file, sf->len));
}
g_assert(test[i].len == 0);
@@ -457,14 +459,14 @@
g_assert(g_mem_equal(command->file, test->file, test->len));
}
-static void check_provisioning_file_references(GSList *command,
+static void check_provisioning_file_references(struct l_queue *command,
const struct stk_file *test)
{
struct stk_file *sf;
- GSList *l;
+ const struct l_queue_entry *l;
unsigned int i = 0;
- for (l = command; l; l = l->next) {
+ for (l = l_queue_get_entries(command); l; l = l->next) {
sf = l->data;
check_provisioning_file_reference(sf, &test[i++]);
}
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.28+git1.tar.bz2/upstream/unit/test-util.c
^
|
@@ -24,12 +24,16 @@
#endif
#include <string.h>
+#include <strings.h>
#include <stdio.h>
#include <assert.h>
#include <glib.h>
+#include <ell/ell.h>
#include "util.h"
+static const bool VERBOSE = false;
+
const unsigned char invalid_gsm_extended[] = {
0x1b, 0x15
};
@@ -356,7 +360,7 @@
g_assert(nread == 0);
g_assert(nwritten == 0);
g_assert(res[0] == '\0');
- g_free(res);
+ l_free(res);
/*
* In case of invalid GSM extended code, we should display
@@ -369,13 +373,13 @@
exp_code = gsm_to_unicode_map[invalid_gsm_extended[1]*2 + 1];
exp_res_length = UTF8_LENGTH(exp_code);
- exp_res = g_new0(char, exp_res_length + 1);
- g_unichar_to_utf8(exp_code, exp_res);
+ exp_res = l_new(char, exp_res_length + 1);
+ l_utf8_from_wchar(exp_code, exp_res);
- g_assert(g_strcmp0(res, exp_res) == 0);
+ g_assert(!strcmp(res, exp_res));
g_assert(nread == exp_res_length);
- g_free(exp_res);
- g_free(res);
+ l_free(exp_res);
+ l_free(res);
res = convert_gsm_to_utf8(invalid_gsm_extended_len,
sizeof(invalid_gsm_extended_len),
@@ -404,7 +408,7 @@
char *res;
int i;
long size;
- gunichar *verify;
+ wchar_t verify;
unsigned char *back;
unsigned char buf[2];
@@ -427,23 +431,18 @@
res = convert_gsm_to_utf8(buf, size, &nread, &nwritten, 0);
g_assert(res);
- if (g_test_verbose())
- g_print("size: %ld, nread:%ld, nwritten:%ld, %s\n",
+ if (VERBOSE)
+ printf("size: %ld, nread:%ld, nwritten:%ld, %s\n",
size, nread, nwritten, res);
g_assert(nread == size);
- verify = g_utf8_to_ucs4(res, -1, NULL, NULL, NULL);
-
- g_assert(verify[0] == gsm_to_unicode_map[i*2+1]);
- g_assert(verify[1] == 0);
-
- g_assert(nwritten == UTF8_LENGTH(verify[0]));
+ g_assert(l_utf8_get_codepoint(res, nwritten, &verify) > 0);
+ g_assert(verify == gsm_to_unicode_map[i*2+1]);
+ g_assert(nwritten == UTF8_LENGTH(verify));
back = convert_utf8_to_gsm(res, -1, &nread, &nwritten, 0);
-
g_assert(back);
-
g_assert(nwritten == size);
if (c & 0x1b00) {
@@ -453,9 +452,8 @@
g_assert(back[0] == (c & 0x7f));
}
- g_free(back);
- g_free(verify);
- g_free(res);
+ l_free(back);
+ l_free(res);
}
}
@@ -466,7 +464,7 @@
char *res;
int i;
long size;
- gunichar *verify;
+ wchar_t verify;
unsigned char *back;
unsigned char buf[2];
@@ -490,24 +488,19 @@
&nwritten, 0, 1, 1);
g_assert(res);
- if (g_test_verbose())
- g_print("size: %ld, nread:%ld, nwritten:%ld, %s\n",
+ if (VERBOSE)
+ printf("size: %ld, nread:%ld, nwritten:%ld, %s\n",
size, nread, nwritten, res);
g_assert(nread == size);
- verify = g_utf8_to_ucs4(res, -1, NULL, NULL, NULL);
-
- g_assert(verify[0] == gsm_turkish_to_unicode_map[i*2+1]);
- g_assert(verify[1] == 0);
-
- g_assert(nwritten == UTF8_LENGTH(verify[0]));
+ g_assert(l_utf8_get_codepoint(res, nwritten, &verify) > 0);
+ g_assert(verify == gsm_turkish_to_unicode_map[i*2+1]);
+ g_assert(nwritten == UTF8_LENGTH(verify));
back = convert_utf8_to_gsm_with_lang(res, -1, &nread,
&nwritten, 0, 1, 1);
-
g_assert(back);
-
g_assert(nwritten == size);
if (c & 0x1b00) {
@@ -517,9 +510,8 @@
g_assert(back[0] == (c & 0x7f));
}
- g_free(back);
- g_free(verify);
- g_free(res);
+ l_free(back);
+ l_free(res);
}
}
@@ -536,44 +528,43 @@
unsigned char *decoded, *packed;
char *utf8, *hex_packed;
unsigned char *gsm, *gsm_encoded;
- long hex_decoded_size;
+ size_t hex_decoded_size;
long unpacked_size, packed_size;
long gsm_encoded_size;
- long i;
- if (g_test_verbose())
- g_print("Size of the orig string: %u\n",
+ if (VERBOSE)
+ printf("Size of the orig string: %u\n",
(unsigned int)strlen(sms));
- decoded = decode_hex(sms, -1, &hex_decoded_size, 0);
-
+ decoded = l_util_from_hexstring(sms, &hex_decoded_size);
g_assert(decoded != NULL);
- if (g_test_verbose())
- g_print("Decode to %ld bytes\n", hex_decoded_size);
+ if (VERBOSE)
+ printf("Decode to %zu bytes\n", hex_decoded_size);
+
+ if (VERBOSE) {
+ size_t i;
- if (g_test_verbose()) {
- g_print("%s\n", sms);
+ printf("%s\n", sms);
for (i = 0; i < hex_decoded_size; i++)
- g_print("%02X", decoded[i]);
- g_print("\n");
+ printf("%02X", decoded[i]);
+ printf("\n");
}
- gsm = unpack_7bit(decoded, hex_decoded_size, 0, FALSE,
+ gsm = unpack_7bit(decoded, hex_decoded_size, 0, false,
reported_text_size, &unpacked_size, 0xff);
g_assert(gsm != NULL);
- if (g_test_verbose())
- g_print("String unpacked to %ld bytes\n", unpacked_size);
+ if (VERBOSE)
+ printf("String unpacked to %ld bytes\n", unpacked_size);
utf8 = convert_gsm_to_utf8(gsm, -1, NULL, NULL, 0xff);
+ g_assert(utf8);
- g_assert(utf8 != NULL);
-
- if (g_test_verbose())
- g_print("String is: -->%s<--\n", utf8);
+ if (VERBOSE)
+ printf("String is: -->%s<--\n", utf8);
g_assert(strcmp(utf8, expected) == 0);
@@ -582,51 +573,50 @@
g_assert(gsm_encoded != NULL);
- if (g_test_verbose())
- g_print("Converted back to GSM string of %ld bytes\n",
+ if (VERBOSE)
+ printf("Converted back to GSM string of %ld bytes\n",
gsm_encoded_size);
g_assert(gsm_encoded[gsm_encoded_size] == 0xff);
g_assert(gsm_encoded_size == unpacked_size);
g_assert(memcmp(gsm_encoded, gsm, gsm_encoded_size) == 0);
- g_free(utf8);
- g_free(gsm);
+ l_free(utf8);
+ l_free(gsm);
- packed = pack_7bit(gsm_encoded, -1, 0, FALSE, &packed_size, 0xff);
+ packed = pack_7bit(gsm_encoded, -1, 0, false, &packed_size, 0xff);
- g_free(gsm_encoded);
+ l_free(gsm_encoded);
g_assert(packed != NULL);
- if (g_test_verbose())
- g_print("Packed GSM to size of %ld bytes\n", packed_size);
+ if (VERBOSE)
+ printf("Packed GSM to size of %ld bytes\n", packed_size);
+
+ if (VERBOSE) {
+ long i;
- if (g_test_verbose()) {
for (i = 0; i < packed_size; i++)
- g_print("%02X", packed[i]);
- g_print("\n");
+ printf("%02X", packed[i]);
+ printf("\n");
}
- g_assert(packed_size == hex_decoded_size);
+ g_assert((size_t) packed_size == hex_decoded_size);
g_assert(memcmp(packed, decoded, packed_size) == 0);
-
g_free(decoded);
- hex_packed = encode_hex(packed, packed_size, 0);
-
+ hex_packed = l_util_hexstring(packed, packed_size);
g_assert(hex_packed != NULL);
+ l_free(packed);
- g_free(packed);
-
- if (g_test_verbose())
- g_print("Hex encoded packed to size %ld bytes\n",
+ if (VERBOSE)
+ printf("Hex encoded packed to size %ld bytes\n",
(long)strlen(hex_packed));
g_assert(strlen(hex_packed) == strlen(sms));
- g_assert(strcmp(hex_packed, sms) == 0);
+ g_assert(strcasecmp(hex_packed, sms) == 0);
- g_free(hex_packed);
+ l_free(hex_packed);
}
static void test_pack_size(void)
@@ -643,52 +633,52 @@
unsigned char *packed;
long size;
- packed = pack_7bit(c1, 1, 0, FALSE, &size, 0);
+ packed = pack_7bit(c1, 1, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 1);
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c2, 2, 0, FALSE, &size, 0);
+ packed = pack_7bit(c2, 2, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 2);
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c3, 3, 0, FALSE, &size, 0);
+ packed = pack_7bit(c3, 3, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 3);
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c4, 4, 0, FALSE, &size, 0);
+ packed = pack_7bit(c4, 4, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 4);
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c5, 5, 0, FALSE, &size, 0);
+ packed = pack_7bit(c5, 5, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 5);
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c6, 6, 0, FALSE, &size, 0);
+ packed = pack_7bit(c6, 6, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 6);
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c7, 7, 0, FALSE, &size, 0);
+ packed = pack_7bit(c7, 7, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 7);
g_assert((packed[6] & 0xfe) == 0);
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c7, 7, 0, TRUE, &size, 0);
+ packed = pack_7bit(c7, 7, 0, true, &size, 0);
g_assert(packed != NULL);
g_assert(size == 7);
g_assert(((packed[6] & 0xfe) >> 1) == '\r');
- g_free(packed);
+ l_free(packed);
- packed = pack_7bit(c8, 8, 0, FALSE, &size, 0);
+ packed = pack_7bit(c8, 8, 0, false, &size, 0);
g_assert(packed != NULL);
g_assert(size == 7);
- g_free(packed);
+ l_free(packed);
}
static void test_cr_handling(void)
@@ -705,53 +695,53 @@
long packed_size;
long unpacked_size;
- packed = pack_7bit(c8, 8, 0, TRUE, &packed_size, 0);
+ packed = pack_7bit(c8, 8, 0, true, &packed_size, 0);
g_assert(packed != NULL);
g_assert(packed_size == 8);
g_assert(((packed[6] & 0xfe) >> 1) == '\r');
g_assert((packed[7] & 0x7f) == '\r');
- unpacked = unpack_7bit(packed, 8, 0, TRUE, -1, &unpacked_size, 0);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ unpacked = unpack_7bit(packed, 8, 0, true, -1, &unpacked_size, 0);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 9);
g_assert(memcmp(c8_expected, unpacked, 9) == 0);
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
- packed = pack_7bit(c7, 7, 0, TRUE, &packed_size, 0);
+ packed = pack_7bit(c7, 7, 0, true, &packed_size, 0);
g_assert(packed != NULL);
g_assert(packed_size == 7);
g_assert(((packed[6] & 0xfe) >> 1) == '\r');
- unpacked = unpack_7bit(packed, 7, 0, TRUE, -1, &unpacked_size, 0);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ unpacked = unpack_7bit(packed, 7, 0, true, -1, &unpacked_size, 0);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 7);
g_assert(memcmp(c7, unpacked, 7) == 0);
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
/* As above, but now unpack using SMS style, we should now have cr at
* the end of the stream
*/
- packed = pack_7bit(c7, 7, 0, TRUE, &packed_size, 0);
- unpacked = unpack_7bit(packed, 7, 0, FALSE, 8, &unpacked_size, 0);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ packed = pack_7bit(c7, 7, 0, true, &packed_size, 0);
+ unpacked = unpack_7bit(packed, 7, 0, false, 8, &unpacked_size, 0);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 8);
g_assert(memcmp(c7_expected, unpacked, 8) == 0);
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
}
static void test_sms_handling(void)
@@ -768,31 +758,31 @@
g_assert(packed_size == 7);
unpacked = unpack_7bit(packed, 7, 0, FALSE, 8, &unpacked_size, 0xff);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 8);
g_assert(unpacked[7] == 0);
g_assert(unpacked[8] == 0xff);
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
packed = pack_7bit(c7, 7, 0, FALSE, &packed_size, 0);
g_assert(packed != NULL);
g_assert(packed_size == 7);
unpacked = unpack_7bit(packed, 7, 0, FALSE, 7, &unpacked_size, 0xff);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 7);
g_assert(unpacked[7] == 0xff);
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
}
static void test_offset_handling(void)
@@ -808,15 +798,15 @@
/* Pack at offset = 2 bytes, e.g. starting with 21st bit */
packed = pack_7bit(c7, 6, 2, FALSE, &packed_size, 0);
- if (g_test_verbose())
- g_print("Packed to size: %ld\n", packed_size);
+ if (VERBOSE)
+ printf("Packed to size: %ld\n", packed_size);
g_assert(packed != NULL);
g_assert(packed_size == 6);
unpacked = unpack_7bit(packed, 6, 2, FALSE, 6, &unpacked_size, 0xff);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 6);
@@ -824,8 +814,8 @@
g_assert(unpacked[0] == 'a');
g_assert(unpacked[5] == 'f');
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
/* Pack at offset = 6 bytes, we should be able to fit one character
* into the first byte, and the other 7 characters into the following
@@ -834,15 +824,15 @@
*/
packed = pack_7bit(c8, 8, 6, FALSE, &packed_size, 0);
- if (g_test_verbose())
- g_print("Packed to size: %ld\n", packed_size);
+ if (VERBOSE)
+ printf("Packed to size: %ld\n", packed_size);
g_assert(packed != NULL);
g_assert(packed_size == 8);
unpacked = unpack_7bit(packed, 8, 6, FALSE, 8, &unpacked_size, 0xff);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 8);
@@ -850,21 +840,21 @@
g_assert(unpacked[0] == 'a');
g_assert(unpacked[7] == 'h');
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
/* Same as above, but instead pack in 9 characters */
packed = pack_7bit(c9, 9, 6, FALSE, &packed_size, 0);
- if (g_test_verbose())
- g_print("Packed to size: %ld\n", packed_size);
+ if (VERBOSE)
+ printf("Packed to size: %ld\n", packed_size);
g_assert(packed != NULL);
g_assert(packed_size == 8);
unpacked = unpack_7bit(packed, 8, 6, FALSE, 9, &unpacked_size, 0xff);
- if (g_test_verbose())
- g_print("Unpacked to size: %ld\n", unpacked_size);
+ if (VERBOSE)
+ printf("Unpacked to size: %ld\n", unpacked_size);
g_assert(unpacked != NULL);
g_assert(unpacked_size == 9);
@@ -872,8 +862,8 @@
g_assert(unpacked[0] == 'a');
g_assert(unpacked[8] == 'i');
- g_free(unpacked);
- g_free(packed);
+ l_free(unpacked);
+ l_free(packed);
}
static unsigned char sim_7bit[] = { 0x6F, 0x46, 0x6F, 0x6E, 0x6F, 0xFF, 0xFF };
@@ -904,43 +894,43 @@
g_assert(utf8);
g_assert(strcmp(utf8, "oFono") == 0);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_80_1, sizeof(sim_80_1));
g_assert(utf8);
g_assert(strcmp(utf8, "ono") == 0);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_80_2, sizeof(sim_80_2));
g_assert(utf8);
g_assert(strcmp(utf8, "ono") == 0);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_80_3, sizeof(sim_80_3));
g_assert(utf8);
g_assert(strcmp(utf8, "ono") == 0);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_81_0, sizeof(sim_81_0));
g_assert(utf8);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_81_2, sizeof(sim_81_2));
g_assert(utf8);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_81_1, sizeof(sim_81_1));
g_assert(utf8);
g_assert(strcmp(utf8, "ono") == 0);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_82_0, sizeof(sim_82_0));
g_assert(utf8);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_82_1, sizeof(sim_82_1));
g_assert(utf8);
- g_free(utf8);
+ l_free(utf8);
utf8 = sim_string_to_utf8(sim_82_2, sizeof(sim_82_2));
g_assert(utf8 == NULL);
@@ -948,7 +938,7 @@
utf8 = sim_string_to_utf8(sim_7bit_empty, sizeof(sim_7bit_empty));
g_assert(utf8);
g_assert(strcmp(utf8, "") == 0);
- g_free(utf8);
+ l_free(utf8);
}
static void test_unicode_to_gsm(void)
@@ -960,7 +950,7 @@
char *utf8;
unsigned char buf[2];
unsigned char *back;
- gunichar2 verify;
+ uint16_t verify;
static int map_size =
sizeof(gsm_to_unicode_map) / sizeof(unsigned short) / 2;
@@ -974,8 +964,8 @@
res = convert_ucs2_to_gsm(buf, 2, &nread, &nwritten, 0);
g_assert(res);
- if (g_test_verbose())
- g_print("nread:%ld, nwritten:%ld, %s\n",
+ if (VERBOSE)
+ printf("nread:%ld, nwritten:%ld, %s\n",
nread, nwritten, res);
if (res[0] == 0x1B)
@@ -983,9 +973,7 @@
else
g_assert(nwritten == 1);
- utf8 = g_convert((const gchar *) buf, 2,
- "UTF-8", "UCS-2BE",
- NULL, NULL, NULL);
+ utf8 = l_utf8_from_ucs2be(buf, 2);
g_assert(utf8);
back = convert_utf8_to_gsm(utf8, strlen(utf8), &nread,
@@ -1000,15 +988,15 @@
verify = back[0];
}
- if (g_test_verbose())
- g_print("nwritten:%ld, verify: 0x%x\n",
+ if (VERBOSE)
+ printf("nwritten:%ld, verify: 0x%x\n",
nwritten, verify);
g_assert(verify == gsm_to_unicode_map[i*2]);
- g_free(res);
- g_free(back);
- g_free(utf8);
+ l_free(res);
+ l_free(back);
+ l_free(utf8);
}
}
|