From e7b3c3b1ad130272c2083c6cff0c61811debfcf3 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sun, 6 Mar 2011 19:57:05 -0600 Subject: [PATCH] add -i --interrupt to fs_cli to allow control-c to exit the program --- libs/esl/fs_cli.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libs/esl/fs_cli.c b/libs/esl/fs_cli.c index 19c5795bee..f5975342cc 100644 --- a/libs/esl/fs_cli.c +++ b/libs/esl/fs_cli.c @@ -577,6 +577,7 @@ static int usage(char *name){ printf(" -P, --port=port Port to connect (1 - 65535)\n"); printf(" -u, --user=user@domain user@domain\n"); printf(" -p, --password=password Password\n"); + printf(" -i, --interrupt Allow Control-c to interrupt"); printf(" -x, --execute=command Execute Command and Exit\n"); printf(" -l, --loglevel=command Log Level\n"); printf(" -q, --quiet Disable logging\n"); @@ -1029,6 +1030,7 @@ int main(int argc, char *argv[]) {"loglevel", 1, 0, 'l'}, {"quiet", 0, 0, 'q'}, {"retry", 0, 0, 'r'}, + {"interrupt", 0, 0, 'i'}, {"reconnect", 0, 0, 'R'}, {0, 0, 0, 0} }; @@ -1044,6 +1046,7 @@ int main(int argc, char *argv[]) int temp_log = -1; int argv_error = 0; int argv_exec = 0; + int ctl_c = 0; char argv_command[1024] = ""; char argv_loglevel[128] = ""; int argv_quiet = 0; @@ -1072,7 +1075,7 @@ int main(int argc, char *argv[]) for(;;) { int option_index = 0; - opt = getopt_long(argc, argv, "H:U:P:S:u:p:d:x:l:qrRh?", options, &option_index); + opt = getopt_long(argc, argv, "H:U:P:S:u:p:d:x:l:qrRhi?", options, &option_index); if (opt == -1) break; switch (opt) { @@ -1116,6 +1119,9 @@ int main(int argc, char *argv[]) case 'q': argv_quiet = 1; break; + case 'i': + ctl_c = 1; + break; case 'r': loops += 120; break; @@ -1260,7 +1266,9 @@ int main(int argc, char *argv[]) esl_log(ESL_LOG_INFO, "Retrying\n"); } } else { - CONNECTED = 1; + if (!ctl_c) { + CONNECTED = 1; + } if (temp_log < 0 ) { esl_global_set_default_logger(profile->debug);