From bb6de2f1e938d2b8fa565ff2196b666053fa957c Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Tue, 19 Oct 1999 19:54:01 +0000 Subject: oops, added wait_keyboard back, but _this_ time wrapped it with HAVE_READLINE (This used to be commit af05710d0b1b73929dee42bb0424c63c48e358f5) --- source3/rpcclient/rpcclient.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'source3') diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index 9648c4d28f..84504b16fb 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -257,6 +257,37 @@ static void do_command(struct client_info *info, char *tok, char *line) } } +#ifndef HAVE_LIBREADLINE +/**************************************************************************** +wait for keyboard activity, swallowing network packets +****************************************************************************/ +static void wait_keyboard(void) +{ + fd_set fds; + struct timeval timeout; + + while (1) { + FD_ZERO(&fds); + FD_SET(cli->fd,&fds); + FD_SET(fileno(stdin),&fds); + + timeout.tv_sec = 20; + timeout.tv_usec = 0; + sys_select(MAX(cli->fd,fileno(stdin))+1,&fds,&timeout); + + if (FD_ISSET(fileno(stdin),&fds)) + return; + + /* We deliberately use receive_smb instead of + client_receive_smb as we want to receive + session keepalives and then drop them here. + */ + if (FD_ISSET(cli->fd,&fds)) + receive_smb(cli->fd,cli->inbuf,0); + } +} +#endif + /**************************************************************************** process commands from the client ****************************************************************************/ @@ -340,7 +371,6 @@ static BOOL process( struct client_info *info, char *cmd_str) /* Copy read line to samba buffer */ pstrcpy(line, rl_line_buffer); - pstrcat(line, "\n"); /* Add to history */ -- cgit