It is an optimization on the content notified from a session. We will
assume that Name/Bearer/Interface/Ipv* do not need to be part of
notification they are empty (when session is in disconnected mode).
---
 src/session.c |   28 +++++++---------------------
 1 files changed, 7 insertions(+), 21 deletions(-)

diff --git a/src/session.c b/src/session.c
index b7a1fb2..80e1073 100644
--- a/src/session.c
+++ b/src/session.c
@@ -371,8 +371,6 @@ static void append_notify(DBusMessageIter *dict,
        struct session_info *info = session->info;
        struct session_info *info_last = session->info_last;
        const char *policy;
-       struct connman_service *service;
-       const char *name, *ifname, *bearer;
 
        if (session->append_all == TRUE ||
                        info->state != info_last->state) {
@@ -384,39 +382,27 @@ static void append_notify(DBusMessageIter *dict,
                info_last->state = info->state;
        }
 
-       if (session->append_all == TRUE ||
-                       info->entry != info_last->entry) {
-               if (info->entry == NULL) {
-                       name = "";
-                       ifname = "";
-                       service = NULL;
-                       bearer = "";
-               } else {
-                       name = info->entry->name;
-                       ifname = info->entry->ifname;
-                       service = info->entry->service;
-                       bearer = info->entry->bearer;
-               }
-
+       if ((session->append_all == TRUE || info->entry != info_last->entry) &&
+                       info->entry != NULL) {
                connman_dbus_dict_append_basic(dict, "Name",
                                                DBUS_TYPE_STRING,
-                                               &name);
+                                               &info->entry->name);
 
                connman_dbus_dict_append_dict(dict, "IPv4",
                                                append_ipconfig_ipv4,
-                                               service);
+                                               info->entry->service);
 
                connman_dbus_dict_append_dict(dict, "IPv6",
                                                append_ipconfig_ipv6,
-                                               service);
+                                               info->entry->service);
 
                connman_dbus_dict_append_basic(dict, "Interface",
                                                DBUS_TYPE_STRING,
-                                               &ifname);
+                                               &info->entry->ifname);
 
                connman_dbus_dict_append_basic(dict, "Bearer",
                                                DBUS_TYPE_STRING,
-                                               &bearer);
+                                               &info->entry->bearer);
 
                info_last->entry = info->entry;
        }
-- 
1.7.8.3

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to