Quit when "exit" or "quit" commands are used in tincctl's shell.
[tinc] / src / tincctl.c
index a515259..fa52533 100644 (file)
@@ -1916,7 +1916,7 @@ static int cmd_shell(int argc, char *argv[]) {
                }
 #else
                if(tty)
-                       fputs(stdout, prompt);
+                       fputs(prompt, stdout);
 
                line = fgets(buf, sizeof buf, stdin);
 #endif
@@ -1951,6 +1951,9 @@ static int cmd_shell(int argc, char *argv[]) {
                if(nargc == argc)
                        continue;
 
+               if(!strcasecmp(nargv[argc], "exit") || !strcasecmp(nargv[argc], "quit"))
+                       return result;
+
                bool found = false;
 
                for(int i = 0; commands[i].command; i++) {
@@ -1962,7 +1965,7 @@ static int cmd_shell(int argc, char *argv[]) {
                }
 
 #ifdef HAVE_READLINE
-               if(found)
+               if(tty && found)
                        add_history(copy);
 #endif