client: Fix stay on error handling in non-interactive 52/204952/1
authorERAMOTO Masaya <eramoto.masaya@jp.fujitsu.com>
Mon, 19 Mar 2018 08:40:48 +0000 (17:40 +0900)
committerAmit Purwar <amit.purwar@samsung.com>
Fri, 26 Apr 2019 10:53:23 +0000 (16:23 +0530)
Returns the FAILURE status since there is no meaning of stay in
non-interactive mode when executing some commands with an invalid
argument or with no controller. Also returns with the SUCCESS status
when getting a scan filtering value or disconnecting a non-default
device.

Change-Id: Iac437afcd04648ba9bb4580201c70e1e8396a329
Signed-off-by: Amit Purwar <amit.purwar@samsung.com>
client/advertising.c
client/main.c

index 51aecd6..8a62f67 100644 (file)
@@ -644,7 +644,7 @@ void ad_advertise_tx_power(DBusConnection *conn, dbus_bool_t *value)
        }
 
        if (ad.tx_power == *value)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_SUCCESS);
 
        ad.tx_power = *value;
 
index 0d58690..a9c92db 100644 (file)
@@ -840,7 +840,7 @@ static void cmd_show(int argc, char *argv[])
 
        if (argc < 2 || !strlen(argv[1])) {
                if (check_default_ctrl() == FALSE)
-                       return;
+                       return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
                proxy = default_ctrl->proxy;
        } else {
@@ -848,7 +848,7 @@ static void cmd_show(int argc, char *argv[])
                if (!adapter) {
                        bt_shell_printf("Controller %s not available\n",
                                                                argv[1]);
-                       return;
+                       return bt_shell_noninteractive_quit(EXIT_FAILURE);
                }
                proxy = adapter->proxy;
        }
@@ -963,7 +963,7 @@ static void cmd_system_alias(int argc, char *argv[])
        char *name;
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        name = g_strdup(argv[1]);
 
@@ -980,7 +980,7 @@ static void cmd_reset_alias(int argc, char *argv[])
        char *name;
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        name = g_strdup("");
 
@@ -998,10 +998,10 @@ static void cmd_power(int argc, char *argv[])
        char *str;
 
        if (!parse_argument(argc, argv, NULL, NULL, &powered, NULL))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        str = g_strdup_printf("power %s", powered == TRUE ? "on" : "off");
 
@@ -1019,10 +1019,10 @@ static void cmd_pairable(int argc, char *argv[])
        char *str;
 
        if (!parse_argument(argc, argv, NULL, NULL, &pairable, NULL))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        str = g_strdup_printf("pairable %s", pairable == TRUE ? "on" : "off");
 
@@ -1042,10 +1042,10 @@ static void cmd_discoverable(int argc, char *argv[])
        char *str;
 
        if (!parse_argument(argc, argv, NULL, NULL, &discoverable, NULL))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        str = g_strdup_printf("discoverable %s",
                                discoverable == TRUE ? "on" : "off");
@@ -1205,10 +1205,10 @@ static void cmd_scan(int argc, char *argv[])
        const char *method;
 
        if (!parse_argument(argc, argv, NULL, NULL, &enable, NULL))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (enable == TRUE) {
                set_discovery_filter();
@@ -1233,7 +1233,7 @@ static void cmd_scan_filter_uuids(int argc, char *argv[])
                for (uuid = filter.uuids; uuid && *uuid; uuid++)
                        print_uuid(*uuid);
 
-               return;
+               return bt_shell_noninteractive_quit(EXIT_SUCCESS);
        }
 
        g_strfreev(filter.uuids);
@@ -1260,7 +1260,7 @@ static void cmd_scan_filter_rssi(int argc, char *argv[])
        if (argc < 2 || !strlen(argv[1])) {
                if (filter.rssi != DISTANCE_VAL_INVALID)
                        bt_shell_printf("RSSI: %d\n", filter.rssi);
-               return;
+               return bt_shell_noninteractive_quit(EXIT_SUCCESS);
        }
 
        filter.pathloss = DISTANCE_VAL_INVALID;
@@ -1275,7 +1275,7 @@ static void cmd_scan_filter_pathloss(int argc, char *argv[])
                if (filter.pathloss != DISTANCE_VAL_INVALID)
                        bt_shell_printf("Pathloss: %d\n",
                                                filter.pathloss);
-               return;
+               return bt_shell_noninteractive_quit(EXIT_SUCCESS);
        }
 
        filter.rssi = DISTANCE_VAL_INVALID;
@@ -1290,7 +1290,7 @@ static void cmd_scan_filter_transport(int argc, char *argv[])
                if (filter.transport)
                        bt_shell_printf("Transport: %s\n",
                                        filter.transport);
-               return;
+               return bt_shell_noninteractive_quit(EXIT_SUCCESS);
        }
 
        g_free(filter.transport);
@@ -1304,7 +1304,7 @@ static void cmd_scan_filter_duplicate_data(int argc, char *argv[])
        if (argc < 2 || !strlen(argv[1])) {
                bt_shell_printf("DuplicateData: %s\n",
                                filter.duplicate ? "on" : "off");
-               return;
+               return bt_shell_noninteractive_quit(EXIT_SUCCESS);
        }
 
        if (!strcmp(argv[1], "on"))
@@ -1313,7 +1313,7 @@ static void cmd_scan_filter_duplicate_data(int argc, char *argv[])
                filter.duplicate = false;
        else {
                bt_shell_printf("Invalid option: %s\n", argv[1]);
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
        }
 
        filter.set = false;
@@ -1415,12 +1415,12 @@ static void cmd_scan_filter_clear(int argc, char *argv[])
                all = true;
 
        if (!data_clear(filter_clear, all ? "all" : argv[1]))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        filter.set = false;
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        set_discovery_filter();
 }
@@ -1673,7 +1673,7 @@ static void cmd_remove(int argc, char *argv[])
        GDBusProxy *proxy;
 
        if (check_default_ctrl() == FALSE)
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (strcmp(argv[1], "*") == 0) {
                GList *list;
@@ -1690,7 +1690,7 @@ static void cmd_remove(int argc, char *argv[])
        proxy = find_proxy_by_address(default_ctrl->devices, argv[1]);
        if (!proxy) {
                bt_shell_printf("Device %s not available\n", argv[1]);
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
        }
 
        remove_device(proxy);
@@ -1752,10 +1752,8 @@ static void disconn_reply(DBusMessage *message, void *user_data)
 
        bt_shell_printf("Successful disconnected\n");
 
-       if (proxy != default_dev)
-               return;
-
-       set_default_device(NULL, NULL);
+       if (proxy == default_dev)
+               set_default_device(NULL, NULL);
 
        return bt_shell_noninteractive_quit(EXIT_SUCCESS);
 }
@@ -1805,7 +1803,7 @@ static void cmd_set_alias(int argc, char *argv[])
 
        if (!default_dev) {
                bt_shell_printf("No device connected\n");
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
        }
 
        name = g_strdup(argv[1]);
@@ -1826,7 +1824,7 @@ static void cmd_select_attribute(int argc, char *argv[])
 
        if (!default_dev) {
                bt_shell_printf("No device connected\n");
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
        }
 
        proxy = gatt_select_attribute(default_attr, argv[1]);
@@ -1970,7 +1968,7 @@ static void cmd_notify(int argc, char *argv[])
        dbus_bool_t enable;
 
        if (!parse_argument(argc, argv, NULL, NULL, &enable, NULL))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (!default_attr) {
                bt_shell_printf("No attribute selected\n");
@@ -2156,7 +2154,7 @@ static void cmd_advertise(int argc, char *argv[])
 
        if (!parse_argument(argc, argv, ad_arguments, "type",
                                        &enable, &type))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        if (!default_ctrl || !default_ctrl->ad_proxy) {
                bt_shell_printf("LEAdvertisingManager not found\n");
@@ -2199,7 +2197,7 @@ static void cmd_advertise_tx_power(int argc, char *argv[])
        }
 
        if (!parse_argument(argc, argv, NULL, NULL, &powered, NULL))
-               return;
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 
        ad_advertise_tx_power(dbus_conn, &powered);
 }
@@ -2356,7 +2354,8 @@ static void cmd_ad_clear(int argc, char *argv[])
        if (argc < 2 || !strlen(argv[1]))
                all = true;
 
-       data_clear(ad_clear, all ? "all" : argv[1]);
+       if(!data_clear(ad_clear, all ? "all" : argv[1]))
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
 }
 
 static const struct bt_shell_menu advertise_menu = {