diff options
author | Daniel Wagner <wagi@monom.org> | 2018-10-09 09:10:44 +0200 |
---|---|---|
committer | Daniel Wagner <wagi@monom.org> | 2018-10-10 08:12:33 +0200 |
commit | 45cf8c8da1b509e91fe0f0618eed82cd5d668f0c (patch) | |
tree | ae1d964d7e6f58b8aedafb5306d49091151403d8 /tools | |
parent | d18df820fc2ef918abd23a14ace730e55f9e9c71 (diff) | |
download | connman-45cf8c8da1b509e91fe0f0618eed82cd5d668f0c.tar.gz |
session-test: Update notification parser
Add the 'recently' introduced properties to the parser.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/session-api.c | 42 | ||||
-rw-r--r-- | tools/session-test.h | 3 | ||||
-rw-r--r-- | tools/session-utils.c | 2 |
3 files changed, 36 insertions, 11 deletions
diff --git a/tools/session-api.c b/tools/session-api.c index b97cfc01..e869d190 100644 --- a/tools/session-api.c +++ b/tools/session-api.c @@ -158,35 +158,55 @@ static DBusMessage *notify_update(DBusConnection *conn, const char *val; dbus_message_iter_get_basic(&value, &val); - if (info->bearer) - g_free(info->bearer); - + g_free(info->bearer); info->bearer = g_strdup(val); } else if (g_str_equal(key, "Name")) { const char *val; dbus_message_iter_get_basic(&value, &val); - if (info->name) - g_free(info->name); - + g_free(info->name); info->name = g_strdup(val); } else if (g_str_equal(key, "Interface")) { const char *val; dbus_message_iter_get_basic(&value, &val); - if (info->interface) - g_free(info->interface); - + g_free(info->interface); info->interface = g_strdup(val); - } else if (g_str_equal(key, "ConnectionType") - ) { + } else if (g_str_equal(key, "ConnectionType")) { const char *val; dbus_message_iter_get_basic(&value, &val); info->type = string2type(val); + + } else if (g_str_equal(key, "Allowedinterface")) { + const char *val; + dbus_message_iter_get_basic(&value, &val); + + g_free(info->allowed_interface); + info->allowed_interface = g_strdup(val); + + } else if (g_str_equal(key, "ContextIdentifier")) { + const char *val; + dbus_message_iter_get_basic(&value, &val); + + g_free(info->context_identifier); + info->context_identifier = g_strdup(val); + + } else { + g_assert(FALSE); + return __connman_error_invalid_arguments(msg); + } + break; + case DBUS_TYPE_BOOLEAN: + if (g_str_equal(key, "SourceIPRule")) { + dbus_bool_t val; + dbus_message_iter_get_basic(&value, &val); + + info->source_ip_rule = val; + } else { g_assert(FALSE); return __connman_error_invalid_arguments(msg); diff --git a/tools/session-test.h b/tools/session-test.h index 85129337..2c068bd7 100644 --- a/tools/session-test.h +++ b/tools/session-test.h @@ -76,6 +76,9 @@ struct test_session_info { enum connman_session_type type; /* ipv4, ipv6 dicts */ GSList *allowed_bearers; + char *allowed_interface; + bool source_ip_rule; + char *context_identifier; }; struct test_session { diff --git a/tools/session-utils.c b/tools/session-utils.c index a70898db..47f0de1f 100644 --- a/tools/session-utils.c +++ b/tools/session-utils.c @@ -309,6 +309,8 @@ void util_session_cleanup(struct test_session *session) g_slist_foreach(session->info->allowed_bearers, bearer_info_cleanup, NULL); g_slist_free(session->info->allowed_bearers); + g_free(session->info->allowed_interface); + g_free(session->info->context_identifier); session->notify = NULL; g_free(session->notify_path); |