Add to check ins status on client 83/234483/1
authorhyunuk.tak <hyunuk.tak@samsung.com>
Tue, 26 May 2020 23:33:52 +0000 (08:33 +0900)
committerhyunuk.tak <hyunuk.tak@samsung.com>
Tue, 26 May 2020 23:33:54 +0000 (08:33 +0900)
Change-Id: I3224dc06110f6c0063fa082b713cb2aaa13a3a1f
Signed-off-by: hyunuk.tak <hyunuk.tak@samsung.com>
client/ins.c

index f62f837..6403f61 100755 (executable)
@@ -27,6 +27,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdint.h>
+#include <stdbool.h>
 #include <string.h>
 #include <unistd.h>
 #include <errno.h>
 
 #include "ins.h"
 
+#define BOOLSTR(s) (((s) == true) ? "TRUE" : "FALSE")
+
+struct ins_info_s {
+       struct {
+               bool last_user_selection;
+               bool last_connected;
+               bool security_priority;
+               bool internet_connection;
+               bool frequency;
+               bool strength;
+       } ssid;
+       struct {
+               bool last_connected;
+               bool assoc_reject;
+               bool frequency;
+               bool strength;
+       } bssid;
+};
+
 struct bssid_info_s {
        char *bssid;
        unsigned int strength;
@@ -61,7 +81,7 @@ static void print_bssid_info(gpointer value, gpointer user_data)
        (*bssid_rank)++;
 }
 
-static GSList *get_bssid_list(DBusMessageIter *iter)
+static GSList *get_bssid_list(DBusMessageIter *iter, struct ins_info_s *ins_info)
 {
        char *property;
        DBusMessageIter entry, val;
@@ -90,11 +110,15 @@ static GSList *get_bssid_list(DBusMessageIter *iter)
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &(bssid_info->score_last_connected));
+                       if (bssid_info->score_last_connected)
+                               ins_info->bssid.last_connected = true;
 
                } else if (strcmp(property, "ScoreAssocReject") == 0) {
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &(bssid_info->score_assoc_reject));
+                       if (bssid_info->score_assoc_reject)
+                               ins_info->bssid.assoc_reject = true;
 
                } else if (strcmp(property, "Frequency") == 0) {
                        dbus_message_iter_next(&entry);
@@ -105,6 +129,8 @@ static GSList *get_bssid_list(DBusMessageIter *iter)
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &(bssid_info->score_frequency));
+                       if (bssid_info->score_frequency)
+                               ins_info->bssid.frequency = true;
 
                } else if (strcmp(property, "Strength") == 0) {
                        dbus_message_iter_next(&entry);
@@ -115,6 +141,8 @@ static GSList *get_bssid_list(DBusMessageIter *iter)
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &(bssid_info->score_strength));
+                       if (bssid_info->score_strength)
+                               ins_info->bssid.strength = true;
 
                        bssid_list = g_slist_append(bssid_list, bssid_info);
                }
@@ -125,7 +153,8 @@ static GSList *get_bssid_list(DBusMessageIter *iter)
        return bssid_list;
 }
 
-static void print_ins_info(int *rank, char *path, char *filter, DBusMessageIter *iter)
+static void print_ins_info(int *rank, struct ins_info_s *ins_info,
+               char *path, char *filter, DBusMessageIter *iter)
 {
        char *name = "";
        char *security;
@@ -162,11 +191,15 @@ static void print_ins_info(int *rank, char *path, char *filter, DBusMessageIter
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &score_last_user_selection);
+                       if (score_last_user_selection)
+                               ins_info->ssid.last_user_selection = true;
 
                } else if (strcmp(property, "ScoreLastConnected") == 0) {
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &score_last_connected);
+                       if (score_last_connected)
+                               ins_info->ssid.last_connected = true;
 
                } else if (strcmp(property, "Security") == 0) {
                        dbus_message_iter_next(&entry);
@@ -177,6 +210,8 @@ static void print_ins_info(int *rank, char *path, char *filter, DBusMessageIter
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &score_security_priority);
+                       if (score_security_priority)
+                               ins_info->ssid.security_priority = true;
 
                } else if (strcmp(property, "Strength") == 0) {
                        dbus_message_iter_next(&entry);
@@ -187,11 +222,15 @@ static void print_ins_info(int *rank, char *path, char *filter, DBusMessageIter
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &score_strength);
+                       if (score_strength)
+                               ins_info->ssid.strength = true;
 
                } else if (strcmp(property, "ScoreInternetConnection") == 0) {
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &score_internet_connection);
+                       if (score_internet_connection)
+                               ins_info->ssid.internet_connection = true;
 
                } else if (strcmp(property, "Frequency") == 0) {
                        dbus_message_iter_next(&entry);
@@ -202,6 +241,8 @@ static void print_ins_info(int *rank, char *path, char *filter, DBusMessageIter
                        dbus_message_iter_next(&entry);
                        dbus_message_iter_recurse(&entry, &val);
                        dbus_message_iter_get_basic(&val, &score_frequency);
+                       if (score_frequency)
+                               ins_info->ssid.frequency = true;
 
                } else if (strcmp(property, "BSSID.List") == 0) {
                        dbus_message_iter_next(&entry);
@@ -209,7 +250,7 @@ static void print_ins_info(int *rank, char *path, char *filter, DBusMessageIter
                        if (dbus_message_iter_get_arg_type(&val)
                                == DBUS_TYPE_ARRAY) {
                                dbus_message_iter_recurse(&val, &dict);
-                               bssid_list = get_bssid_list(&dict);
+                               bssid_list = get_bssid_list(&dict, ins_info);
                        }
 
                }
@@ -251,6 +292,9 @@ static void list_ins_array(DBusMessageIter *iter, char *filter)
        DBusMessageIter array, dict;
        char *path = NULL;
        int rank = 1;
+       struct ins_info_s ins_info;
+
+       memset(&ins_info, 0, sizeof(ins_info));
 
        while (dbus_message_iter_get_arg_type(iter) == DBUS_TYPE_STRUCT) {
 
@@ -265,11 +309,22 @@ static void list_ins_array(DBusMessageIter *iter, char *filter)
                if (dbus_message_iter_get_arg_type(&array)
                                == DBUS_TYPE_ARRAY) {
                        dbus_message_iter_recurse(&array, &dict);
-                       print_ins_info(&rank, path, filter, &dict);
+                       print_ins_info(&rank, &ins_info, path, filter, &dict);
                }
 
                dbus_message_iter_next(iter);
        }
+
+       fprintf(stdout, "\n");
+       fprintf(stdout, "  [SSID]  last_usr[%s] last_conn[%s] "
+               "sec_priority[%s] internet[%s] freq[%s] strength[%s]\n",
+               BOOLSTR(ins_info.ssid.last_user_selection), BOOLSTR(ins_info.ssid.last_connected),
+               BOOLSTR(ins_info.ssid.security_priority), BOOLSTR(ins_info.ssid.internet_connection),
+               BOOLSTR(ins_info.ssid.frequency), BOOLSTR(ins_info.ssid.strength));
+
+       fprintf(stdout, "  [BSSID] last_conn[%s] assoc_reject[%s] freq[%s] strength[%s]\n",
+               BOOLSTR(ins_info.bssid.last_connected), BOOLSTR(ins_info.bssid.assoc_reject),
+               BOOLSTR(ins_info.bssid.frequency), BOOLSTR(ins_info.bssid.strength));
 }
 
 void __connmanctl_ins_list(DBusMessageIter *iter, char *filter)