cli: 'device disconnect' - ask for interface when missing and '--ask' is present
This commit is contained in:

committed by
Dan Williams

parent
0db4b4db90
commit
60f54cd65d
@@ -1166,17 +1166,27 @@ do_device_disconnect (NmCli *nmc, int argc, char **argv)
|
|||||||
const GPtrArray *devices;
|
const GPtrArray *devices;
|
||||||
NMDevice *device = NULL;
|
NMDevice *device = NULL;
|
||||||
const char *iface = NULL;
|
const char *iface = NULL;
|
||||||
gboolean iface_specified = FALSE;
|
char *iface_ask = NULL;
|
||||||
gboolean wait = TRUE;
|
gboolean wait = TRUE;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Set default timeout for disconnect operation */
|
/* Set default timeout for disconnect operation */
|
||||||
nmc->timeout = 10;
|
nmc->timeout = 10;
|
||||||
|
|
||||||
|
if (argc == 0) {
|
||||||
|
if (nmc->ask) {
|
||||||
|
iface_ask = nmc_get_user_input ("Interface: ");
|
||||||
|
iface = iface_ask;
|
||||||
|
// TODO: list available devices when just Enter is pressed ?
|
||||||
|
}
|
||||||
|
if (!iface_ask) {
|
||||||
|
g_string_printf (nmc->return_text, _("Error: No interface specified."));
|
||||||
|
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
while (argc > 0) {
|
while (argc > 0) {
|
||||||
if (strcmp (*argv, "iface") == 0) {
|
if (strcmp (*argv, "iface") == 0) {
|
||||||
iface_specified = TRUE;
|
|
||||||
|
|
||||||
if (next_arg (&argc, &argv) != 0) {
|
if (next_arg (&argc, &argv) != 0) {
|
||||||
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
|
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *(argv-1));
|
||||||
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
||||||
@@ -1205,12 +1215,12 @@ do_device_disconnect (NmCli *nmc, int argc, char **argv)
|
|||||||
fprintf (stderr, _("Unknown parameter: %s\n"), *argv);
|
fprintf (stderr, _("Unknown parameter: %s\n"), *argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
argc--;
|
next_arg (&argc, &argv);
|
||||||
argv++;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!iface_specified) {
|
if (!iface) {
|
||||||
g_string_printf (nmc->return_text, _("Error: iface has to be specified."));
|
g_string_printf (nmc->return_text, _("Error: No interface specified."));
|
||||||
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user