summaryrefslogtreecommitdiff
path: root/source3/lib/readline.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-10-03 14:58:41 -0700
committerJeremy Allison <jra@samba.org>2008-10-03 14:58:41 -0700
commita9390d3047b7b7aba6f73c20e3dff292f7600a9f (patch)
tree4fb4a4a52e45e0b4907fd79e16de9e5b90d202c8 /source3/lib/readline.c
parentf6c883b4b00f4cd751cd312a27bddffb3be9c059 (diff)
downloadsamba-a9390d3047b7b7aba6f73c20e3dff292f7600a9f.tar.gz
samba-a9390d3047b7b7aba6f73c20e3dff292f7600a9f.tar.bz2
samba-a9390d3047b7b7aba6f73c20e3dff292f7600a9f.zip
Correctly fix smbclient to terminate on eof from server.
Jeremy.
Diffstat (limited to 'source3/lib/readline.c')
-rw-r--r--source3/lib/readline.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/source3/lib/readline.c b/source3/lib/readline.c
index 254f55c86a..fd57799b57 100644
--- a/source3/lib/readline.c
+++ b/source3/lib/readline.c
@@ -45,6 +45,16 @@
# define RL_COMPLETION_CAST
#endif /* HAVE_NEW_LIBREADLINE */
+static bool smb_rl_done;
+
+void smb_readline_done(void)
+{
+ smb_rl_done = true;
+#if HAVE_LIBREADLINE
+ rl_done = 1;
+#endif
+}
+
/****************************************************************************
Display the prompt and wait for input. Call callback() regularly
****************************************************************************/
@@ -69,7 +79,7 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void)
return NULL;
}
- while (1) {
+ while (!smb_rl_done) {
timeout.tv_sec = 5;
timeout.tv_usec = 0;
@@ -87,6 +97,7 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void)
callback();
}
}
+ return NULL;
}
/****************************************************************************